2016-12-02 72 views
1

在我的方案中,我使用“consul”作为键值存储后端,以及另外两个安装了docker的VM。命令我运行这两个虚拟机的码头工人守护进程:Docker - 同一覆盖网络中不同主机中的容器之间的连接

sudo docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock \ 
--cluster-store consul://{CONSUL_IP}:8500 --cluster-advertise eth0:2376 

也是运行领事的命令是:

sudo docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock 

在此之后,我尝试使用创建网络:

sudo docker network create -d overlay --subnet=192.168.3.0/24 my-overlay 

而且在每个虚拟机的我运行一个busybox的容器:

sudo docker run -itd --name containerX --net my-overlay busybox 

其中X是A,B是另一个。

这里是 “泊坞窗信息” 从第一VM:

$ sudo docker info 
Containers: 4 
Running: 2 
Paused: 0 
Stopped: 2 
Images: 3 
Server Version: 1.12.3 
Storage Driver: aufs 
Root Dir: /var/lib/docker/aufs 
Backing Filesystem: extfs 
Dirs: 17 
Dirperm1 Supported: false 
Logging Driver: json-file 
Cgroup Driver: cgroupfs 
Plugins: 
Volume: local 
Network: overlay bridge host null 
Swarm: inactive 
Runtimes: runc 
Default Runtime: runc 
Security Options: apparmor 
Kernel Version: 3.13.0-76-generic 
Operating System: Ubuntu 14.04.3 LTS 
OSType: linux 
Architecture: x86_64 
CPUs: 1 
Total Memory: 1.955 GiB 
Name: cs-webserving-4 
ID: ESSZ:WBCV:W6NU:ODJ6:3ZIW:QHMH:TEXP:M66M:NYF5:MNWB:H4M7:Z3L6 
Docker Root Dir: /var/lib/docker 
Debug Mode (client): false 
Debug Mode (server): false 
Registry: https://index.docker.io/v1/ 
WARNING: No swap limit support 
Cluster Store: consul://10.254.1.92:8500 
Cluster Advertise: 10.254.1.123:2376 
Insecure Registries: 
127.0.0.0/8 

这里是另一个VM:

$ sudo docker info 
Containers: 4 
Running: 2 
Paused: 0 
Stopped: 2 
Images: 3 
Server Version: 1.12.3 
Storage Driver: aufs 
Root Dir: /var/lib/docker/aufs 
Backing Filesystem: extfs 
Dirs: 17 
Dirperm1 Supported: false 
Logging Driver: json-file 
Cgroup Driver: cgroupfs 
Plugins: 
Volume: local 
Network: overlay host bridge null 
Swarm: inactive 
Runtimes: runc 
Default Runtime: runc 
Security Options: apparmor 
Kernel Version: 3.13.0-76-generic 
Operating System: Ubuntu 14.04.3 LTS 
OSType: linux 
Architecture: x86_64 
CPUs: 1 
Total Memory: 1.955 GiB 
Name: cs-webserving-3 
ID: BTAL:L3LE:BHSX:DQRD:HTC4:KXJE:T772:47TU:4KJZ:NIY4:7WTY:Q6TO 
Docker Root Dir: /var/lib/docker 
Debug Mode (client): false 
Debug Mode (server): false 
Registry: https://index.docker.io/v1/ 
WARNING: No swap limit support 
Cluster Store: consul://10.254.1.92:8500 
Cluster Advertise: 10.254.1.122:2376 
Insecure Registries: 
127.0.0.0/8 

问题 当我尝试平containerB从containerA,我得不到答案:

sudo docker exec containerB ping -w 5 192.168.3.5 
PING 192.168.3.5 (192.168.3.5): 56 data bytes 

--- 192.168.3.5 ping statistics --- 
5 packets transmitted, 0 packets received, 100% packet loss 

哪里192.168.3.5是overlay网络中containerA的IP。 **注:**我也试过名称“containerA”而不是IP,它也没有工作。

我的方案中存在什么问题?任何提示或解决方案,将不胜感激。

+0

你从哪里得到这些IP?你可以在所有的机器上发布'docker network inspect my-overlay'的输出吗? – johnharris85

回答

1

尝试链接容器。

例:

$ docker run -ti --name containerA --link containerB:containerB_alias ubuntu bash 

您可以ping:[[email protected]]$ ping containerB_alias

0

什么版本的泊坞窗您使用的是?目前,传统的容器不允许连接到覆盖网络,只有服务。这将在版本1.13中使用覆盖网络创建的--attachable关键字进行修复。

可能更有意义的是在同一个覆盖网络上创建两个服务。然后他们将能够通过服务名称直接引用对方。

相关问题