连接到远程主机上的docker守护进程
我有两个虚拟机(A和B)与Ubuntu和docker安装在两个。 他们被放置在同一个虚拟networking。 我想从B中访问A的docker守护进程
为了达到这个目的,我把A的守护进程绑定到2375端口。为此,我添加了
ExecStart=/usr/bin/docker daemon -H fd:// $DOCKER_OPTS EnvironmentFile=-/etc/default/docker
到/lib/systemd/system/docker.service
和
DOCKER_OPTS="-H tcp://0.0.0.0:2375"
到/etc/default/docker
在BI上使用docker -H=192.168.71.129:2375 run hello-world
并获取docker: Cannot connect to the Docker daemon...
错误。
故障排除
iptables在两台机器上都是禁用的。
sudo docker -H 192.168.71.129:2375 run hello-world
在工作。
sudo netstat -tunlp | grep docker
在A
输出上A
sudo netstat -tunlp | grep docker
tcp6 0 0 :::2375 :::* LISTEN 10363/docker
在这篇文章中,我看到docker rest API有一个ping端点。 如果我使用echo -e "GET /_ping HTTP/1.1\r\n" | nc 192.168.71.129 2375
从B
调用此端点 echo -e "GET /_ping HTTP/1.1\r\n" | nc 192.168.71.129 2375
,我得到一个200 OK
代码。 所以Enpoint是明确的。
你能给我一个提示,为什么B
上的Docker客户端无法连接到A
上的守护进程?
FYI
IP A
192.168.71.129
IP B
192.168.71.128
user@ubuntu:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.4 LTS Release: 14.04 Codename: trusty
在A
user@ubuntu:~$ docker -H 192.168.71.129:2375 version Client: Version: 1.11.2 API version: 1.23 Go version: go1.5.4 Git commit: b9f10c9 Built: Wed Jun 1 21:47:50 2016 OS/Arch: linux/amd64 Server: Version: 1.11.2 API version: 1.23 Go version: go1.5.4 Git commit: b9f10c9 Built: Wed Jun 1 21:47:50 2016 OS/Arch: linux/amd64
在B
user@ubuntu:~$ docker -H 192.168.71.129:2375 version Client: Version: 1.11.2 API version: 1.23 Go version: go1.5.4 Git commit: b9f10c9 Built: Wed Jun 1 21:47:50 2016 OS/Arch: linux/amd64 Cannot connect to the Docker daemon. Is the docker daemon running on this host?
一切都很好,除了代理设置… Docker使用systemproxy来解决IP的问题