7

解决docker中修改docker.daemon文件后启动失败

 2 years ago
source link: https://plutoacharon.github.io/2020/05/17/%E8%A7%A3%E5%86%B3docker%E4%B8%AD%E4%BF%AE%E6%94%B9docker-daemon%E6%96%87%E4%BB%B6%E5%90%8E%E5%90%AF%E5%8A%A8%E5%A4%B1%E8%B4%A5/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

在 docker 配置文件中设置

docker 1.12 版本之后, 建议在 docker 的 js 配置文件中配置, 路径为 /etc/docker/daemon.json 默认没有这个文件, 可以手动创建此文件, docker 启动时默认会读取此配置文件

{
"registry-mirrors": ["https://6y2639ye.mirror.aliyuncs.com"]
}

我这里配置的加速源

在一次误操作中 动了/usr/lib/systemd/system/docker.service下的文件 报错:

[root@localhost ~]# systemctl status docker.service
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: failed (Result: start-limit) since 四 2020-05-14 10:19:16 CST; 25s ago
Docs: https://docs.docker.com
Process: 2493 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
Main PID: 2493 (code=exited, status=1/FAILURE)

5月 14 10:19:14 localhost.localdomain systemd[1]: Failed to start Docker Application Container Engine.
5月 14 10:19:14 localhost.localdomain systemd[1]: Unit docker.service entered failed state.
5月 14 10:19:14 localhost.localdomain systemd[1]: docker.service failed.
5月 14 10:19:16 localhost.localdomain systemd[1]: docker.service holdoff time over, scheduling restart.
5月 14 10:19:16 localhost.localdomain systemd[1]: Stopped Docker Application Container Engine.
5月 14 10:19:16 localhost.localdomain systemd[1]: start request repeated too quickly for docker.service
5月 14 10:19:16 localhost.localdomain systemd[1]: Failed to start Docker Application Container Engine.
5月 14 10:19:16 localhost.localdomain systemd[1]: Unit docker.service entered failed state.
5月 14 10:19:16 localhost.localdomain systemd[1]: docker.service failed.

是因为 docker 的 socket 配置出现了冲突, 接下来查看 docker 的启动入口文件

> vim /lib/systemd/system/docker.service # Ubuntu的路径; CentOS 的路径为: /usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd -H fd://
修改为
ExecStart=/usr/bin/dockerd

从上面可以看出, 在 docker 的启动入口文件中配置了 host 相关的信息, 而在 docker 的配置文件中也配置了 host 的信息, 所以发生了冲突. 解决办法, 建议将 docker 启动入口文件中的 -H fd:// 删除, 再重启 docker 服务即可

[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl start docker




About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK