Comment 1 for bug 1942276

Revision history for this message
Sergio Durigan Junior (sergiodj) wrote : Re: docker 20.10.7-0ubuntu2 fails to start when installed inside Impish LXD container

Investigating a bit more, here's what we see when we check the status of docker.socket:

# systemctl status docker.socket
× docker.socket - Docker Socket for the API
     Loaded: loaded (/lib/systemd/system/docker.socket; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Wed 2021-09-01 02:05:47 UTC; 14s ago
   Triggers: ● docker.service
     Listen: /run/docker.sock (Stream)

Sep 01 02:05:47 test-docker systemd[1]: Starting Docker Socket for the API.
Sep 01 02:05:47 test-docker systemd[2488]: docker.socket: Failed to resolve group docker: No such process
Sep 01 02:05:47 test-docker systemd[1]: docker.socket: Control process exited, code=exited, status=216/GROUP
Sep 01 02:05:47 test-docker systemd[1]: docker.socket: Failed with result 'exit-code'.
Sep 01 02:05:47 test-docker systemd[1]: Failed to listen on Docker Socket for the API.

What caught my attention is the following line:

Sep 01 02:05:47 test-docker systemd[2488]: docker.socket: Failed to resolve group docker: No such process

It doesn't make sense to me. As can be seen in the bug description, the "docker" group was properly created *before* the service/socket was (tentatively) started.

If we inspect the socket, we see that its group is indeed wrong (it should be "docker", but it's "root"):

# ls -la /var/run/docker.sock
srw-rw---- 1 root root 0 Sep 1 02:05 /var/run/docker.sock

What's strange is that systemd should be responsible for changing the ownership of the socket when the service is started, but it can't (because it fails to "resolve" the "docker" group). strace wasn't very helpful to determine what's going on here.

It's also interesting to note that I can't reproduce the problem with docker.io 20.10.7-0ubuntu1 (from impish-release). The installation finishes just fine.

I noticed that the last upload was about shipping libnetwork into the golang-github-docker-docker-dev package. Initially I don't see how this could have impacted the docker installation here. Maybe libnetwork is messing with the socket creation somehow?