Docker will not start after installing "docker compose"n (w/out the "-"

After trying to start docker (which hangs) a systemctl status docker.service returns the following:

○ docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/docker.service.d
             └─override.conf
     Active: inactive (dead) (Result: exit-code) since Sat 2026-03-21 18:58:56 CDT; 20min ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 283958 (code=exited, status=1/FAILURE)
        CPU: 66ms

Mar 21 18:58:56 Sabea8 systemd[1]: docker.service: Scheduled restart job, restart counter is at 54.
Mar 21 18:58:56 Sabea8 systemd[1]: Stopped Docker Application Container Engine.

ps aux shows many “/usr/bin/docker-proxy” processes running and most of the docker web sites are reachable (pi-hone, checkmk, docview but casaos will not work, nor uptime kuma). This all started because I tried to install N.O.M.A.D. It needed “docker compose” to run and I attempted the install. At that point everything broke.

Any assistance will be appreciated.

PS - docker info shows:

 docker info
Client: Docker Engine - Community
 Version:    29.3.0
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.31.1
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v5.0.2
    Path:     /root/.docker/cli-plugins/docker-compose

Server:
 Containers: 7
  Running: 5
  Paused: 0
  Stopped: 2
 Images: 9
 Server Version: 29.3.0
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 CDI spec directories:
  /etc/cdi
  /var/run/cdi
 Swarm: inactive
 Runtimes: runc io.containerd.runc.v2
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 301b2dac98f15c27117da5c8af12118a041a31d9
 runc version: v1.3.4-0-gd6d73eb8
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 6.8.0-106-generic
 Operating System: Ubuntu 22.04.5 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 6
 Total Memory: 31.38GiB
 Name: Sabea8
 ID: 8d17b5a0-cc42-4cc1-8853-2d6f24cf21d2
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  ::1/128
  127.0.0.0/8
 Live Restore Enabled: false
 Firewall Backend: iptables

It is indeed confusing that the docker service is inactive (=it should start and keep the docker engine running), while at the same time docker info is still able to interact with the docker engine. This shouldn’t be possible.

We need the output of following commands to get a better understanding:

dpkg -l 'docker*' | grep '^ii'
snap list docker

Restart the docker daemon and take a look at the logs:

sudo  systemctl restart docker
# wait less that 120 seconds
sudo journalctl -xu docker.service --since "2 minutes ago"

The 2 minutes are just a suggestion. You can adjust it to whatever is necessary.

You will want to look at a cycle that starts with Starting Docker Application Container Engine..." and ends with Stopped Docker Application Container Engine.. Note: Not every level="error" entry will be relevant to the problem.

Here’s the dpkg output:

snap list docker
ii  docker-buildx-plugin      0.31.1-1~ubuntu.22.04~jammy   amd64        Docker Buildx plugin extends build capabilities with BuildKit.
ii  docker-ce-cli             5:29.3.0-1~ubuntu.22.04~jammy amd64        Docker CLI: the open-source application container engine
ii  docker-ce-rootless-extras 5:29.3.0-1~ubuntu.22.04~jammy amd64        Rootless support for Docker.
ii  docker-compose            1.29.2-1                      all          define and run multi-container Docker applications with YAML
ii  docker-compose-plugin     5.1.1-1~ubuntu.22.04~jammy    amd64        Docker Compose (V2) plugin for the Docker CLI.
error: no matching snaps installed

Here’s the jouralctl output after a docker restart (note it rand for about 4 minutes) :

 sudo  systemctl restart docker
# wait less that 120 seconds
sudo journalctl -xu docker.service --since "2 minutes ago"
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xeu docker.service" for details.
Mar 22 09:56:54 Sabea8 systemd[1]: Starting Docker Application Container Engine...
░░ Subject: A start job for unit docker.service has begun execution
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ A start job for unit docker.service has begun execution.
░░
░░ The job identifier is 1725364.
Mar 22 09:56:54 Sabea8 dockerd[1287953]: time="2026-03-22T09:56:54.306282490-05:00" level=info msg="Starting up"
Mar 22 09:56:54 Sabea8 dockerd[1287953]: time="2026-03-22T09:56:54.306860424-05:00" level=info msg="Daemon shutdown complete" error="failed to start daemon, ensure docker is>
Mar 22 09:56:54 Sabea8 dockerd[1287953]: failed to start daemon, ensure docker is not running or delete /var/run/docker.pid: process with PID 70213 is still running
Mar 22 09:56:54 Sabea8 systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ An ExecStart= process belonging to unit docker.service has exited.
░░
░░ The process' exit code is 'exited' and its exit status is 1.
Mar 22 09:56:54 Sabea8 systemd[1]: docker.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ The unit docker.service has entered the 'failed' state with result 'exit-code'.
Mar 22 09:56:54 Sabea8 systemd[1]: Failed to start Docker Application Container Engine.
░░ Subject: A start job for unit docker.service has failed
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ A start job for unit docker.service has finished with a failure.
░░
░░ The job identifier is 1725364 and the job result is failed.

After the issue I had with attempting to install N.O.M.A.D. I installed “docker compose” using a curl command

sudo apt update
sudo apt install docker-ce docker-ce-cli docker-compose-plugin

docker compose version
Docker Compose version v5.0.2

It was right after that the docker problem occurred.

Here’s what the current systemctl status for docker looks like. The screenshot indicates that there might be an issue with the docker.socket.

Do you mean it just installing docker-compose broke Docker without running any other command like docker compose up -d?

The NOMAD you linked has an installer that installs Docker CE using the “convenience script”

So you shouldn’t even need to install it separately unless you already had Docker CE installed without compose.

If you have no other Docker daemon that even the previously recommended commands couldn’t show, it look like the daemon was killed without deleting the pid file and now sicne it contains the previous instance’s ID, the new instance cannot start until you delete the old pid file.

docker-compose was installed but the helper script may have installed docker-ce which was cause other issues with dpkg. I have since fixed that by:

sudo mv /var/lib/dpkg/info/docker-ce.* /tmp/
sudo dpkg --remove --force-remove-reinstreq docker-ce

I am still with original problem, docker will not start (see screen capture above). docker seems to be hanging on docker.socket and will not start which is what I interrupt the green half-circle next to TriggeredBy to mean.

I expected to see details about the error.

Please try what the output suggest: journalctl -xeu docker.service (of course after restarting the docker service, and with a useful --since duration).

There must be a reason the daemon is terminating during start.

The working docker info output, made me suspicious whether there is a double installation (1x via apt, 1x via snap). It’s not the case.

Update: I just looked up, what -e actually does, hoping it would be related to errors, but it is not. It is just to jump at the end of the page.

You can create the file /etc/docker/daemon.json with this content (if it doesn’t exist on your system already):

{
  "debug": "true"
}

Then restart the docker service. It should provide more details now.

I have solved the issue after a marathon session with chatGPT. I am sorting through the chat dialog to concisely detail what the issue was and how it was solved. If and can ID’s the solution correctly I’ll post it here. I guess AI has some uses after all.

Thanks to all for your input and help!

1 Like

I appreciate the offer to share the solution! It will probably help others using the N.O.M.A.D installer as well!

Please do me a favor and do not share the AI generated output directly, because we have a strict forum policy against it. We generally believe that GenAI is useful, but want to have posts with real user experience in this forum, rather than a shotgun load of unfiltered suggestions of an AI :slight_smile:

1 Like

No problem, that was my plan once I have a little time to sort thru the dialog with chatgpt. I’ll post a condensed version w/just the solution.

1 Like

I was running Docker on Ubuntu 20.4, and after attempting an install of N.O.M.A.D. which wanted "docker compose(w/o the dash. After thinking I’d installed “docker compose” the docker.service would not start. When I ran “systemctl start docker” or restarted docker, it would hang or fail with repeated restart attempts.

I verified that Docker itself was installed correctly, but the service would not come up under systemd. To isolate the problem, I ran the daemon manually using:

dockerd -H unix:///run/docker.sock --containerd=/run/containerd/containerd.sock

That worked—Docker and initialized. This proved the Docker engine itself was fine.

The root cause was the default systemd configuration had been changed and was using:

-H fd://
	Type=notify
	docker.socket

That socket-activation / notify setup was broken and causing the service to hang or fail. I bypassed the broken systemd configuration and created my own service that starts Docker directly:

[Service]
	Type=simple
	ExecStart=/usr/bin/dockerd -H unix:///run/docker.sock --containerd=/run/containerd/containerd.sock

Then disabled and masked the default docker.service and docker.socket
enabled my custom dockerd-manual.service.

Thank you for sharing the solution with us!

It is the cli plugin, which is provided by the package docker-compose-plugin

I missed that you have the package docker-compose (=v1) installed as well, please remove it as it is deprecated for more than three years now. It is not 100% compatible with latest docker versions.