docker daemon远程连接设置详解
Docker为C/S架构,服务端为dockerdaemon,客户端为docker.service.支持本地unixsocket域套接字通信与远程socket通信。默认为本地unixsocket通信,要支持远程客户端访问需要做如下设置(仅用于测试,生产环境开启会极大增加不安全性:由于开了监听端口,任何人可以通过远程连接到dockerdaemon服务器进行操作):
1、设置daemon监听连接:
添加本地默认监听端口,模式为IP:port
Ubuntu:
修改daemon配置:/etc/docker/daemon.json,添加如下行:
{"hosts":["fd://","tcp://0.0.0.0:2375"]}(需要花括号,如果有多行设置,每行都需要花括号,设置了fd://自动便是unixsocket
重启docker:
systemctlrestartdocker.service(Ubuntu16.04)
查看有了“-H”表示成功
root@ubuntu:~#psaux|grepdockerd root1137310.50.163616047536?Ssl10:540:00/usr/bin/dockerd-Hunix:///var/-Htcp://0.0.0.0 root@ubuntu:~#netstat-lant|grep2375 tcp600:::2375:::*LISTEN
Centos7:
/etc/docker/daemon.json会被docker.service的配置文件覆盖,直接添加daemon.json不起作用。可以有如下几种设置:
1、直接编辑配置文件:Centos中dockerdaemon配置文件在/lib/systemd/system/docker.service,找到以下字段,在后面添加如下,注意,此处不能用"fd://",否则报错
... [Service] ... ExecStart=/usr/bin/dockerd-Hunix:///var/run/docker.sock-Htcp://0.0.0.0:2375
执行
systemctldaemon-reload systemctlrestartdocker.service
2、systemctleditdocker.service,或者编辑vim/etc/systemd/system/docker.service.d/override.conf(必须这样,少一行都不行,unix://也不能按官方写fd://)
[Service] ExecStart= ExecStart=/usr/bin/dockerd-Hunix:///var/run/docker.sock-Htcp://0.0.0.0:2375
同样执行
systemctldaemon-reload systemctlrestartdocker.service
最后查看是否成功,添加了-H参数,启动了端口(端口默认为2375,但是可以改):
[root@myrepodocker.service.d]#psaux|grepdockerd root55678.02.063297637696?Ssl15:080:00/usr/bin/dockerd-Htcp://0.0.0.0:2376-Hunix:///var/run/docker.sock root61430.00.0112660976pts/0S+15:080:00grep--color=autodockerd [root@myrepodocker.service.d]#netstat-lant|grep2376 tcp600:::2376:::*LISTEN
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。