Docker 守护进程访问

1 背景知识

问题:默认情况下Docker 的守护进程只能在宿主机上访问。想要将Docker 服务器开放给其他人访问如何做?
解决方案:使用开放的TCP 地址启动 Docker 守护进程。

2 Docker 网络访问架构

Jenkins
服务器
Jenkins...
同事的
宿主机
同事的宿主机
/var/run/docker.sock
/var/run/docker.sock
Docker
守护进程
Docker...
Docker 
客户端
Docker...
tcp://0.0.0.0:2375
tcp://0.0.0.0:2375
Docker
守护进程
Docker...
Docker 
客户端
Docker...
默认的Docker 配置,限制只能通过/var/run/docker.scok域套接字访问。宿主机外的进程无法获取Docker的访问权限。
默认的Docker 配置,限制只能通过/var/run/docke...
开启Docker守护进程范围,通过TCP端口2375获取访问权限。
开启Docker守护进程范围,通过TCP端口2375获取访问权限。
第三方可以访问Docker的守护进程。并使用这种方式进行读写访问。
第三方可以访问Docker的守护进程。并使用这种方式进行读写访问。
Text is not SVG - cannot display

3 Docker 守护进程访问

修改过程参照 Docker 使用证书加固 Docker Daemon 安全#1.5. 五、配置服务端

3.1 修改 daemon. json

vi /etc/docker/daemon.json

//输入内容:

{
"hosts": ["tcp://0.0.0.0:2376", "unix:///var/run/docker.sock"]
}

3.2 编辑 docker.service 文件

找到 ExecStart 那一行并修改成以下内容。

[root@node1 log]# vi /usr/lib/systemd/system/docker.service

//输入内容:
ExecStart=/usr/bin/dockerd  --containerd=/run/containerd/containerd.sock

3.3 生效修改的内容

systemctl daemon-reload

3.4 重启 Docker Daemon 进程

service docker restart

3.5 重启Docker 服务

systemctl restart docker