Docker daemon do not start

File /usr/sbin/docker-runc is missing. In solution I’ve found, people suggested to link file from /usr/libexec/docker, but this directory doesn’t exist. I try whereis docker-runc, but it is nowhere on my system. Any suggestions?

Hi
The change log is a good place to start… :wink:


-------------------------------------------------------------------
Tue Feb  2 05:28:01 UTC 2021 - Aleksa Sarai <asarai@suse.com>

- Drop docker-runc, docker-test and docker-libnetwork packages. We now just use
  the upstream runc package (it's stable enough and Docker no longer pins git
  versions).

Do you have a fully updated system? Maybe docker itself wasn’t updated. Either this or you have stale configuration files. Look for docker-runc in /etc/docker/daemon.json.

There’s no docker-runc text.


{
  "log-level": "warn",
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "5"
  }
}\

Hi
Did you see the change log entry, docker-run is now runc…

I really like OpenSUSE Tumbleweed. I know your marketing slogan is: Best system for programmers and admin, but I’m newbie and I think OpenSUSE Tumbleweed is easiest system I known.

I edit:
/etc/systemd/system/docker.service and paste result content bellow.


[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target lvm2-monitor.service firewalld.service

[Service]
EnvironmentFile=/etc/sysconfig/docker

# While Docker has support for socket activation (-H fd://), this is not
# enabled by default because enabling socket activation means that on boot your
# containers won't start until someone tries to administer the Docker daemon.
Type=notify
ExecStart=/usr/bin/dockerd --add-runtime oci=/usr/bin/runc $DOCKER_NETWORK_OPTIONS $DOCKER_OPTS
ExecReload=/bin/kill -s HUP $MAINPID

# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=1048576
LimitNPROC=infinity
LimitCORE=infinity

# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this property.
TasksMax=infinity

# Set delegate yes so that systemd does not reset the cgroups of docker containers
# Only systemd 218 and above support this property.
Delegate=yes

# Kill only the docker process, not all processes in the cgroup.
KillMode=process

# Restart the docker process if it exits prematurely.
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target


journalctl -u docker --no-pager --lines
-- Logs begin at Mon 2021-03-29 13:25:22 CEST, end at Mon 2021-03-29 16:16:02 CEST. --
mar 29 16:13:16 localhost.localdomain dockerd[20769]: time="2021-03-29T16:13:16.055292352+02:00" level=warning msg="could not create bridge network for id 590756dc4028d28e1efd86976dd06d087af5a903eeaafb47a030047de9244c7a bridge name docker0 while booting up from persistent state: Failed to program NAT chain: ZONE_CONFLICT: 'docker0' already bound to a zone"
mar 29 16:13:17 localhost.localdomain dockerd[20769]: failed to start daemon: Error initializing network controller: Error creating default "bridge" network: Failed to program NAT chain: ZONE_CONFLICT: 'docker0' already bound to a zone
mar 29 16:13:17 localhost.localdomain systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
mar 29 16:13:17 localhost.localdomain systemd[1]: docker.service: Failed with result 'exit-code'.
mar 29 16:13:17 localhost.localdomain systemd[1]: Failed to start Docker Application Container Engine.
mar 29 16:13:17 localhost.localdomain systemd[1]: docker.service: Scheduled restart job, restart counter is at 3.
mar 29 16:13:17 localhost.localdomain systemd[1]: Stopped Docker Application Container Engine.
mar 29 16:13:17 localhost.localdomain systemd[1]: docker.service: Start request repeated too quickly.
mar 29 16:13:17 localhost.localdomain systemd[1]: docker.service: Failed with result 'exit-code'.
mar 29 16:13:17 localhost.localdomain systemd[1]: Failed to start Docker Application Container Engine.


So you have problem X and asked about Y. From the error log it complains about the default bridge network. It looks like related to firewalld. I never seen this error, as docker usually works out of the box in TW.

Show us the content of

cat /etc/sysconfig/docker

as it might show additional options passed to docker.

Also, instead of pasting the content of a file, let systemd show how docker is configured:

systemctl cat docker

. I don’t have this file in /etc, not sure how it got there.

You might be interested in this bug report: https://bugzilla.opensuse.org/show_bug.cgi?id=1182168

Although this bug was reported against Leap.