Docker为C/S架构,服务端为docker daemon (daemon是守护进程的意思,进程名叫dockerd),客户端为docker.service。
docker daemon 支持三种方式的连接(unix,tcp 和 fd)。默认使用unix连接,会创建/var/run/docker.sock
需要root权限和是docker权限的成员。
要支持远程客户端,需要开放tcp,访问需要做如下设置
注意,这样会不安全,如果你的docker daemon运行在公网上面,一旦开了监听端口,任何人都可以远程连接到docker daemon服务器进行操作)
做法如下:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd
{
// 这个之前就有,是加速器,加速下载镜像速度
"registry-mirrors": ["http://12e04d08.m.daocloud.io"],
// 给docker-daemon做一个标签
"labels": ["name=docker-server"],
"hosts": [
// 主要这行,允许任何IP通过2375端口访问
"tcp://0.0.0.0:2375",
"unix:///var/run/docker.sock"
]
}
在 daemon.json 中设置 hosts 并不支持Windows和Mac Docker 桌面版
关于daemon.json 的具体配置,见官方文档
最后
# 修改完成后reload配置文件
sudo systemctl daemon-reload
# 重启docker服务
sudo systemctl restart docker.service
# 查看状态
sudo systemctl status docker -l
# 查看服务
sudo docker info
在任何装了docker客户端的机器上,测试 docker -H tcp://192.168.3.201:2375 ps
192.168.3.201 是刚才运行docker daemon的机器,如果连不上,检查防火墙是否开放了2375端口