一、报错:
[root@localhost ~]# systemctl restart docker
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xe" for details.
二、原因:
- daemon.json 格式错误
- 配置冲突,如 daemon.json 和 docker.service 中同时配置了同一个参数
三、解决方案
1. 删除 daemon.json 或者 重命名成 daemon.conf (不推荐,效果相同)
全网很多博主的解决方案是重命名成 daemon.conf,但是通过docker info查看发现,配置并未生效
2. 复制标准的 daemon.json 文件格式
{"registry-mirrors": ["https://n14or9zx.mirror.aliyuncs.com","https://mirror.ccs.tencentyun.com","http://registry.docker-cn.com","http://docker.mirrors.ustc.edu.cn","http://hub-mirror.c.163.com"],"insecure-registries": ["registry.docker-cn.com","docker.mirrors.ustc.edu.cn"],"log-driver": "json-file","log-opts": {"max-size": "500m"}
}
3. 针对配置冲突问题
配置冲突,如 daemon.json 和 docker.service 中同时配置了同一个参数
- insecure-registry:表示设置我们自己的私有仓库地址
- 只需要在其中一个文件中配置即可
- 这里推荐删除docker.service 中
- 如 docker.service 中 删除 --insecure-registry=192.168.2.195 ,在daemon.json配置即可
- 如 daemon.json 中 "insecure-registries"
四、生效配置
# 重新加载配置
systemctl daemon-reload
# 重启docker
systemctl restart docker
# 查看配置是否生效
docker info