Docker not running on startup, can run manually

Weird problem with docker. Service is set to run at startup and up until the last couple of days it has. Now it doesn’t. I can start it manually sudo systemctl start docker.service and it starts with no errors.

* docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: disabled)
     Active: active (running) since Wed 2023-05-03 12:07:45 AEST; 2min 18s ago
       Docs: http://docs.docker.com
   Main PID: 11905 (dockerd)
      Tasks: 136
        CPU: 2.450s
     CGroup: /system.slice/docker.service
             |-11905 /usr/bin/dockerd --add-runtime oci=/usr/sbin/docker-runc
             |-11914 containerd --config /var/run/docker/containerd/containerd.toml --log-level warn
             |-12299 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9443 -container-ip 172.17.0.2 -container-port 9443
             |-12308 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8083 -container-ip 172.24.0.2 -container-port 8083
             |-12329 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8000 -container-ip 172.17.0.2 -container-port 8000
             |-12337 /usr/bin/docker-proxy -proto udp -host-ip 0.0.0.0 -host-port 10001 -container-ip 172.18.0.2 -container-port 10001
             |-12350 /usr/sbin/containerd-shim-runc-v2 -namespace moby -id 93c0504b1e780534dfc241e1b2ae336d2c38c7a220365b5ce257c44211b5b06b -address /var/run/docker/containerd/containerd.sock
             |-12366 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8880 -container-ip 172.18.0.2 -container-port 8880
             |-12391 /usr/sbin/containerd-shim-runc-v2 -namespace moby -id 78c921507df5adf4da7fd68bba3b77230ee0fb647fb14a229ab98b972661a5f4 -address /var/run/docker/containerd/containerd.sock
             |-12413 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8843 -container-ip 172.18.0.2 -container-port 8843
             |-12432 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8443 -container-ip 172.18.0.2 -container-port 8443
             |-12460 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8080 -container-ip 172.18.0.2 -container-port 8080
             |-12488 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 6789 -container-ip 172.18.0.2 -container-port 6789
             |-12506 /usr/bin/docker-proxy -proto udp -host-ip 0.0.0.0 -host-port 3478 -container-ip 172.18.0.2 -container-port 3478
             `-12540 /usr/sbin/containerd-shim-runc-v2 -namespace moby -id 8c3129ff0dc088ba9886d7a5c8f27bfb974d00e25d516144ca8c5af077ee9be3 -address /var/run/docker/containerd/containerd.sock

May 03 12:07:45 localhost.localdomain dockerd[11914]: time="2023-05-03T12:07:45.151945812+10:00" level=info msg="loading plugin \"io.containerd.internal.v1.shutdown\"..." runtime=io.containerd.runc.v2 type=io.containerd.internal.v1
May 03 12:07:45 localhost.localdomain dockerd[11914]: time="2023-05-03T12:07:45.151963901+10:00" level=info msg="loading plugin \"io.containerd.ttrpc.v1.task\"..." runtime=io.containerd.runc.v2 type=io.containerd.ttrpc.v1
May 03 12:07:45 localhost.localdomain dockerd[11914]: time="2023-05-03T12:07:45.152129762+10:00" level=info msg="starting signal loop" namespace=moby path=/run/docker/containerd/daemon/io.containerd.runtime.v2.task/moby/78c921507df5adf4da7fd68bba3b77230ee0fb647fb14a229ab98b972661a5f4 pid=12391 runtime=io.containerd.runc.v2
May 03 12:07:45 localhost.localdomain dockerd[11914]: time="2023-05-03T12:07:45.424058319+10:00" level=info msg="loading plugin \"io.containerd.event.v1.publisher\"..." runtime=io.containerd.runc.v2 type=io.containerd.event.v1
May 03 12:07:45 localhost.localdomain dockerd[11914]: time="2023-05-03T12:07:45.424179515+10:00" level=info msg="loading plugin \"io.containerd.internal.v1.shutdown\"..." runtime=io.containerd.runc.v2 type=io.containerd.internal.v1
May 03 12:07:45 localhost.localdomain dockerd[11914]: time="2023-05-03T12:07:45.424197855+10:00" level=info msg="loading plugin \"io.containerd.ttrpc.v1.task\"..." runtime=io.containerd.runc.v2 type=io.containerd.ttrpc.v1
May 03 12:07:45 localhost.localdomain dockerd[11914]: time="2023-05-03T12:07:45.424505870+10:00" level=info msg="starting signal loop" namespace=moby path=/run/docker/containerd/daemon/io.containerd.runtime.v2.task/moby/8c3129ff0dc088ba9886d7a5c8f27bfb974d00e25d516144ca8c5af077ee9be3 pid=12540 runtime=io.containerd.runc.v2
May 03 12:07:45 localhost.localdomain dockerd[12537]: time="2023-05-03T12:07:45+10:00" level=info msg="Firewalld: docker zone already exists, returning"
May 03 12:07:45 localhost.localdomain dockerd[12631]: time="2023-05-03T12:07:45+10:00" level=info msg="Firewalld: docker zone already exists, returning"
May 03 12:07:45 localhost.localdomain systemd[1]: Started Docker Application Container Engine.

I can’t find any errors in the systemd error log that indicate why it doesn’t run on startup.

Any ideas as to how to go about troubleshooting?

Reboot and post full output as root of

systemctl cat docker.service
journalctl -b --full --no-pager

Upload to https://susepaste.org/

➜ ~ systemctl cat docker.service
https://paste.opensuse.org/pastes/9347235a3b27

journalctl -b --full --no-pager
https://paste.opensuse.org/pastes/eab3c7c6a335

I said it had to be run as root.
Hint: You are currently not seeing messages from other users and the system.

So you did, sorry.

https://paste.opensuse.org/pastes/1e3bd1183d64

May 03 17:10:02 localhost.localdomain systemd[1]: Starting containerd container runtime...

What is it? I suspect its unit conflicts with docker.service which makes systemd drop one of them from initial transaction.

Yes, that was the problem. Ran systemctl disable containerd then rebooted and docker started as it should. Many thanks :grinning: