docker开启远程访问后,重启失败的解决方案

我的docker版本:

参考网上的一个说明,docker开启远程访问的配置为:

创建 /etc/docker/daemon.json 文件(如果已经存在则修改),加入以下内容:

{
  "hosts" : ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
}
  • "unix:///var/run/docker.sock":unix socket,本地客户端将通过这个来连接 Docker Daemon。
  • "tcp://0.0.0.0:2375":tcp socket,表示允许任何远程客户端通过 2375 端口连接 Docker Daemon。

下面重启docker。

systemctl daemon-reload // 1,加载docker守护线程
systemctl restart docker // 2,重启docker

结果报错。

查看dockerd报错日志:

journalctl -u docker

有这么一行报错日志。


dockerd[12747]: unable to configure the Docker daemon with file /etc/docker/daemon.json: 
the following directives are specified both as  a flag and in the configuration file: hosts: (from flag: [fd://], from file: [unix:///var/run/docker.sock tcp://0.0.0.0:2375])

经过查阅相关资料,官网文档上有说这个错误原因:

https://docs.docker.com/config/daemon/#use-the-hosts-key-in-daemonjson-with-systemd

简而言之,就是配置冲突。

解决方法:

修改docker.service文件

 vim /usr/lib/systemd/system/docker.service

删掉【service】单元中ExecStart中的-H参数,如图:

然后重启docker,问题解决。


版权声明:本文为u011877621原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。