对远程主机

时间:2016-07-06 15:01:33

标签: ubuntu docker

我有两个VM(A和B),两者都安装了Ubuntu和docker。它们位于同一虚拟网络中。我想从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

在B上我使用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

A上工作。

sudo netstat -tunlp | grep docker输出

A

tcp6       0      0 :::2375               :::*                  LISTEN      10363/docker

this帖子中,我看到docker rest API有一个ping端点。如果我使用Becho -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?

1 个答案:

答案 0 :(得分:0)

除了代理设置外,一切都很好...... Docker使用systemproxy连接到IP的