Docker failed to start after update

Docker failed to start after an update last week. I searched for a solution but I have not found one. What to do?

Docker didn’t start automatically after boot. I tried to start docker manually.
systemctl start docker
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.

the status from docker.service didn’t help me.
systemctl status docker.service
× docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; preset: disabled)
Active: failed (Result: exit-code) since Sun 2023-04-30 00:54:30 CEST; 1min 58s ago
Docs: http://docs.docker.com
Process: 14456 ExecStart=/usr/bin/dockerd --add-runtime oci=/usr/sbin/docker-runc $DOCKER_NETWORK_OPTIONS $DOCKER_OPTS (code=exited, status=1/FAILURE)
Main PID: 14456 (code=exited, status=1/FAILURE)
CPU: 95ms

result from journalctl
apr 30 00:54:30 monch systemd[1]: docker.service: Scheduled restart job, restart counter is at 3.
apr 30 00:54:30 monch systemd[1]: Stopped Docker Application Container Engine.
apr 30 00:54:30 monch systemd[1]: docker.service: Start request repeated too quickly.
apr 30 00:54:30 monch systemd[1]: docker.service: Failed with result ‘exit-code’.
apr 30 00:54:30 monch systemd[1]: Failed to start Docker Application Container Engine.

the only hint of an error I found after starting docker daemon
dockerd
WARN[2023-04-30T00:59:21.129787625+02:00] failed to load plugin io.containerd.snapshotter.v1.devmapper error=“devmapper not configured”
WARN[2023-04-30T00:59:21.130375993+02:00] could not use snapshotter devmapper in metadata plugin error=“devmapper not configured”
ERRO[2023-04-30T00:59:21.131456106+02:00] failed to initialize a tracing processor “otlp” error=“no OpenTelemetry endpoint: skip plugin”

With the snapshotter error I found some clues, but I don’t know how to apply the instructions. I don’t know if they apply to my situation.

From where did you install docker?

Please post the output of:

$ cat /etc/docker/daemon.json
$ cat /etc/fstab

I installed docker from an openSUSE repository. Current version is 23.05_cd-1.1x86_64. This version comes from
openSUSE:Factory: “https://download.opensuse.org/repositories/openSUSE:/Factory/snapshot/” and is also available from
openSUSE:Tumbleweed-oss “http://download.opensuse.org/tumbleweed/repo/oss/

output from daemon.json
{
“log-level”: “warn”,
“log-driver”: “json-file”,
“log-opts”: {
“max-size”: “10m”,
“max-file”: “5”
}
}

output from fstab. I used a ’ before the # to keep it readable
UUID=652a567f-289a-46f1-8e30-d850411990b9 swap swap defaults 0 0
UUID=33522b12-2ef7-4156-9485-7f08b356abc7 / btrfs defaults 0 0
UUID=33522b12-2ef7-4156-9485-7f08b356abc7 /boot/grub2/i386-pc btrfs subvol=@/boot/grub2/i386-pc 0 0
UUID=33522b12-2ef7-4156-9485-7f08b356abc7 /boot/grub2/x86_64-efi btrfs subvol=@/boot/grub2/x86_64-efi 0 0
UUID=33522b12-2ef7-4156-9485-7f08b356abc7 /opt btrfs subvol=@/opt 0 0
UUID=33522b12-2ef7-4156-9485-7f08b356abc7 /srv btrfs subvol=@/srv 0 0
UUID=33522b12-2ef7-4156-9485-7f08b356abc7 /tmp btrfs subvol=@/tmp 0 0
UUID=33522b12-2ef7-4156-9485-7f08b356abc7 /usr/local btrfs subvol=@/usr/local 0 0
UUID=33522b12-2ef7-4156-9485-7f08b356abc7 /var/cache btrfs subvol=@/var/cache 0 0
UUID=33522b12-2ef7-4156-9485-7f08b356abc7 /var/crash btrfs subvol=@/var/crash 0 0
UUID=33522b12-2ef7-4156-9485-7f08b356abc7 /var/lib/libvirt/images btrfs subvol=@/var/lib/libvirt/images 0 0
UUID=33522b12-2ef7-4156-9485-7f08b356abc7 /var/lib/machines btrfs subvol=@/var/lib/machines 0 0
UUID=33522b12-2ef7-4156-9485-7f08b356abc7 /var/lib/mailman btrfs subvol=@/var/lib/mailman 0 0
UUID=33522b12-2ef7-4156-9485-7f08b356abc7 /var/lib/mariadb btrfs subvol=@/var/lib/mariadb 0 0
UUID=33522b12-2ef7-4156-9485-7f08b356abc7 /var/lib/mysql btrfs subvol=@/var/lib/mysql 0 0
UUID=33522b12-2ef7-4156-9485-7f08b356abc7 /var/lib/named btrfs subvol=@/var/lib/named 0 0
UUID=33522b12-2ef7-4156-9485-7f08b356abc7 /var/lib/pgsql btrfs subvol=@/var/lib/pgsql 0 0
UUID=33522b12-2ef7-4156-9485-7f08b356abc7 /var/log btrfs subvol=@/var/log 0 0
UUID=33522b12-2ef7-4156-9485-7f08b356abc7 /var/opt btrfs subvol=@/var/opt 0 0
UUID=33522b12-2ef7-4156-9485-7f08b356abc7 /var/spool btrfs subvol=@/var/spool 0 0
UUID=33522b12-2ef7-4156-9485-7f08b356abc7 /var/tmp btrfs subvol=@/var/tmp 0 0
UUID=33522b12-2ef7-4156-9485-7f08b356abc7 /.snapshots btrfs subvol=@/.snapshots 0 0
UUID=E438-1CE5 /boot/efi vfat umask=0002,utf8=true 0 0
UUID=22927e00-e235-42a9-817e-719eb9aaf0d0 /home xfs defaults 1 2
UUID=1723d769-e6ab-43ae-b908-af0a8e5a803c /bern ext4 defaults 1 2
'# UUID=dec4eeb1-a277-4cfa-a648-0f188a2010bc /buren ext4 defaults 1 2
UUID=d1937239-372c-41d4-bf1e-ecff03a1970d /biel ext4 acl,user_xattr 1 2
UUID=4b7e1b84-a541-4fd8-b0d5-d232823e6a7a /thun ext4 defaults 1 2
UUID=84544a38-15d5-4496-b379-be2b6e186d65 /buren xfs defaults 0 0
UUID=989bd9b1-4947-4ddf-a7b1-ebd4225aeb8a /brienz ext4 data=ordered 0 2

I can’t identify anything wrong. Looking at docker.service there’s another source of configuration, please post the output of:

$ cat /etc/sysconfig/docker

result of /etc/sysconfig/docker

## Path : System/Management ## Description : Extra cli switches for docker daemon ## Type : string ## Default : "" ## ServiceRestart : docker #

DOCKER_OPTS=“-g /bern/webserver/docker”

I don’t know why all comment text appear to be on the same line. it seems to be something in the formatting with the double hashtags. I tried to use pre-formatted text - that seems not to work. I’m used to code tags.

Try adding the preformatted block (ctrl+e) first, then pasting the code. Multiline takes 3 backticks, not just one.

## Path           : System/Management
## Description    : Extra cli switches for docker daemon
## Type           : string
## Default        : ""
## ServiceRestart : docker
#
DOCKER_OPTS=""

I have no idea what this -g option means for dockerd.

$ man dockerd | grep -wA 3 '\-g'
$

My logs look different, no mention of those warnings and warning-posing-as-error. I don’t know how to configure those plugins though.

At last I had some time to explore the issue. The -g option stands for --graph and is replaced by --data-root. With Dockerd in debug mode and providing these options manually I got a clear message that -g was depreciated.