报错如下:
[root@localhost ~]# docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
无法连接到Docker守护进程在unix:///var/run/ Docker.sock。docker守护进程正在运行吗
初步判断是docker 没起来,直接执行 systemctl start docker,还是报错:
[root@localhost ~]# systemctl start docker
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
docker.service 的作业失败,因为控制进程退出并出现错误代码
查看docker服务的的状态
[root@localhost ~]# systemctl status 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 Thu 2023-08-03 09:51:26 CST; 22s ago
Docs: https://docs.docker.com
Process: 31808 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
Main PID: 31808 (code=exited, status=1/FAILURE
继续排查问题,网上找到种方法是修改/etc/docker的daemon.json为daemon.conf,尝试了下,果然有用。
[root@localhost docker]# mv daemon.json daemon.conf
[root@localhost docker]# systemctl restart docker
[root@localhost docker]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2023-08-03 09:52:31 CST; 20s ago
Docs: https://docs.docker.com
Main PID: 11210 (dockerd)
Memory: 46.1M
CGroup: /system.slice/docker.service
└─11210 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/contain...
Aug 03 09:52:31 localhost.localdomain systemd[1]: Starting Docker Application Co....
Aug 03 09:52:31 localhost.localdomain dockerd[11210]: time="2023-08-03T09:52:31.1...
Aug 03 09:52:31 localhost.localdomain dockerd[11210]: time="2023-08-03T09:52:31.1...
Aug 03 09:52:31 localhost.localdomain dockerd[11210]: time="2023-08-03T09:52:31.1...
Aug 03 09:52:31 localhost.localdomain dockerd[11210]: time="2023-08-03T09:52:31.4...
Aug 03 09:52:31 localhost.localdomain dockerd[11210]: time="2023-08-03T09:52:31.4...
Aug 03 09:52:31 localhost.localdomain dockerd[11210]: time="2023-08-03T09:52:31.5...
Aug 03 09:52:31 localhost.localdomain dockerd[11210]: time="2023-08-03T09:52:31.5...
Aug 03 09:52:31 localhost.localdomain dockerd[11210]: time="2023-08-03T09:52:31.6...
Aug 03 09:52:31 localhost.localdomain systemd[1]: Started Docker Application Con....
Hint: Some lines were ellipsized, use -l to show in full.
docker安装后默认没有daemon.json这个配置文件,需要进行手动创建。配置文件的默认路径:/etc/docker/daemon.json
查了下daemon.conf文件的作用
这--config-file
选项允许您以 JSON 格式为守护程序设置任何配置选项。该文件使用与键相同的标志名称,但允许多个条目的标志除外,其中它使用标志名称的复数形式,例如,labels
用于label
标志。
配置文件中设置的选项不得与通过标志设置的选项冲突。如果文件和标志之间有重复的选项,无论其值如何,docker 守护进程都将无法启动。这样做是为了默默地忽略配置重新加载中引入的更改。例如,如果您在配置文件中设置守护进程标签并通过标志设置守护进程标签,守护进程将无法启动--label
。当守护进程启动时,文件中不存在的选项将被忽略
原文链接:https://medium.com/@sujaypillai/docker-daemon-configuration-file-f577000da655
自己本地daemon配置的是镜像加速器
[root@localhost docker]# cat daemon.conf
{ "registry-mirrors": ["https://mu7j1zdf.mirror.aliyuncs.com"] } #systemctl restart docker #sudo systemctl status docker