docker daemon远程连接设置详解

Docker为C/S架构,服务端为docker daemon,客户端为docker.service.支持本地unix socket域套接字通信与远程socket通信。默认为本地unix socket通信,要支持远程客户端访问需要做如下设置(仅用于测试,生产环境开启会极大增加不安全性:由于开了监听端口,任何人可以通过远程连接到docker daemon服务器进行操作):

1、设置daemon监听连接:

添加本地默认监听端口,模式为IP:port

Ubuntu:

修改daemon配置:/etc/docker/daemon.json,添加如下行:

{"hosts": ["fd://", "tcp://0.0.0.0:2375"]}(需要花括号,如果有多行设置,每行都需要花括号,设置了fd://自动便是unix socket

重启docker:

systemctl restart docker.service(Ubuntu16.04) 

查看有了“-H”表示成功

root@ubuntu:~# ps aux|grep dockerd 
root   113731 0.5 0.1 636160 47536 ?    Ssl 10:54  0:00 /usr/bin/dockerd -H unix:///var/ -H tcp://0.0.0.0 
root@ubuntu:~# netstat -lant|grep 2375 
tcp6    0   0 :::2375         :::*          LISTEN  

Centos7:

/etc/docker/daemon.json会被docker.service的配置文件覆盖,直接添加daemon.json不起作用。可以有如下几种设置:

1、直接编辑配置文件:Centos中docker daemon配置文件在/lib/systemd/system/docker.service,找到以下字段,在后面添加如下,注意,此处不能用"fd://",否则报错

... 
[Service] 
... 
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 

执行

systemctl daemon-reload 
systemctl restart docker.service 

2、systemctl edit docker.service,或者编辑vim /etc/systemd/system/docker.service.d/override.conf(必须这样,少一行都不行,unix://也不能按官方写fd://)

[Service] 
ExecStart= 
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 

同样执行

systemctl daemon-reload 
systemctl restart docker.service 

最后查看是否成功,添加了-H参数,启动了端口(端口默认为2375,但是可以改):

[root@myrepo docker.service.d]# ps aux|grep dockerd 
root   5567 8.0 2.0 632976 37696 ?    Ssl 15:08  0:00 /usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock 
root   6143 0.0 0.0 112660  976 pts/0  S+  15:08  0:00 grep --color=auto dockerd 
[root@myrepo docker.service.d]# netstat -lant|grep 2376 
tcp6    0   0 :::2376         :::*          LISTEN 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。