[Solved] Docker service fail to start after update

I had the exact same symptoms as devintcreation, but with a slightly different ExecStart value, and thus needed the same solution, just in a different location. The above answer pushed me in the right direction.

My systemctl status docker was:

× docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Wed 2023-04-19 15:20:34 AEST; 24s ago
TriggeredBy: × docker.socket
       Docs: https://docs.docker.com
    Process: 3846 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
   Main PID: 3846 (code=exited, status=1/FAILURE)
        CPU: 86ms

Apr 19 15:20:34 docker-01 systemd[1]: docker.service: Scheduled restart job, restart counter is at 3.
Apr 19 15:20:34 docker-01 systemd[1]: Stopped Docker Application Container Engine.
Apr 19 15:20:34 docker-01 systemd[1]: docker.service: Start request repeated too quickly.
Apr 19 15:20:34 docker-01 systemd[1]: docker.service: Failed with result 'exit-code'.
Apr 19 15:20:34 docker-01 systemd[1]: Failed to start Docker Application Container Engine.

The difference being in the Process line where I had not edited the ExecStart line at all.

I had done the Docker home location change in a daemon.json file in /etc/docker/.

In my /etc/docker/daemon.json I had:

{ 
   "graph": "/docker" 
}

I believe this is the daemon.json equivalent to “-g” or “–graph” which is mentioned in the release notes.

When I changed “graph” to “data-root” docker started right up.
So, my /etc/docker/daemon.json in a working configuration is:

{ 
   "data-root": "/docker" 
}

I did not need to edit the /usr/lib/systemd/system/docker.service at all in my situation.

For reference my Server: Docker Engine - Community version is 23.0.4.

2 Likes