通过重置 /etc/docker/daemon.json 来解决 docker 启动不了的问题

具体报错表现

查看容器

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

启动报错

Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

分析和解决

查看Docker日志: journalctl -u docker.service

docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: failed (Result: start-limit) since 四 2023-05-18 21:14:53 CST; 21s ago
     Docs: https://docs.docker.com
  Process: 22281 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
 Main PID: 22281 (code=exited, status=1/FAILURE)

5月 18 21:14:51 free1 systemd[1]: docker.service failed.
5月 18 21:14:53 free1 systemd[1]: docker.service holdoff time over, scheduling restart.
5月 18 21:14:53 free1 systemd[1]: Stopped Docker Application Container Engine.
5月 18 21:14:53 free1 systemd[1]: start request repeated too quickly for docker.service
5月 18 21:14:53 free1 systemd[1]: Failed to start Docker Application Container Engine.
5月 18 21:14:53 free1 systemd[1]: Unit docker.service entered failed state.
5月 18 21:14:53 free1 systemd[1]: docker.service failed.
5月 18 21:14:53 free1 systemd[1]: start request repeated too quickly for docker.service
5月 18 21:14:53 free1 systemd[1]: Failed to start Docker Application Container Engine.
5月 18 21:14:53 free1 systemd[1]: docker.service failed.
[root@free1 ~]# journalctl -u docker.service
-- Logs begin at 四 2023-05-18 20:50:37 CST, end at 四 2023-05-18 21:16:06 CST. --
5月 18 20:54:41 free1 systemd[1]: Starting Docker Application Container Engine...
5月 18 20:54:43 free1 dockerd[5016]: unable to configure the Docker daemon with file /etc/docker/daemon.json: the following directive
5月 18 20:54:43 free1 systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
5月 18 20:54:43 free1 systemd[1]: Failed to start Docker Application Container Engine.
5月 18 20:54:43 free1 systemd[1]: Unit docker.service entered failed state.
5月 18 20:54:43 free1 systemd[1]: docker.service failed.
5月 18 20:54:45 free1 systemd[1]: docker.service holdoff time over, scheduling restart.
5月 18 20:54:45 free1 systemd[1]: Stopped Docker Application Container Engine.
5月 18 20:54:45 free1 systemd[1]: Starting Docker Application Container Engine...
5月 18 20:54:45 free1 dockerd[5069]: unable to configure the Docker daemon with file /etc/docker/daemon.json: the following directive
5月 18 20:54:45 free1 systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
5月 18 20:54:45 free1 systemd[1]: Failed to start Docker Application Container Engine.
5月 18 20:54:45 free1 systemd[1]: Unit docker.service entered failed state.
5月 18 20:54:45 free1 systemd[1]: docker.service failed.
5月 18 20:54:47 free1 systemd[1]: docker.service holdoff time over, scheduling restart.
5月 18 20:54:47 free1 systemd[1]: Stopped Docker Application Container Engine.

根据提供的日志信息,Docker服务启动失败的原因是无法配置Docker守护进程(Docker daemon)使用指定的配置文件/etc/docker/daemon.json
由于没有动过该配置文件,所以语法错误什么的基本不可能

解决方法
首先备份下原来的配置文件【可选,推荐】

mv /etc/docker/daemon.json /etc/docker/daemon.json.bak

然后新建空的配置文件

touch /etc/docker/daemon.json

接着重启 docker,start、restart 都行
不出意外的话,成功解决!!

猜你喜欢

转载自blog.csdn.net/e5pool/article/details/130755616
今日推荐