我的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,问题解决。