Networking 不同主机之间的Docker容器网络连接

Networking 不同主机之间的Docker容器网络连接,networking,routing,Networking,Routing,我在两台主机(虚拟机)上安装了docker。我想让不同主机上的容器能够相互连接 以下是VM1和VM2的ifconfig输出: VM1 VM2 桥接器用于容器。我做了一些网络配置: iptables -t nat -A POSTROUTING -s 172.17.52.0/24 ! -d 172.17.0.0/16 -j MASQUERADE (on VM1) iptables -t nat -A POSTROUTING -s 172.17.53.0/24 ! -d 172.17.0.0/16 -

我在两台主机(虚拟机)上安装了docker。我想让不同主机上的容器能够相互连接

以下是VM1和VM2的ifconfig输出:

VM1

VM2

桥接器
用于容器。我做了一些网络配置:

iptables -t nat -A POSTROUTING -s 172.17.52.0/24 ! -d 172.17.0.0/16 -j MASQUERADE (on VM1)
iptables -t nat -A POSTROUTING -s 172.17.53.0/24 ! -d 172.17.0.0/16 -j MASQUERADE (on VM2)
route add -net 172.17.52.0 netmask 255.255.255.0 gw 192.168.122.129 (on VM2)
route add -net 172.17.53.0 netmask 255.255.255.0 gw 192.168.122.77 (on VM1)
当一个容器ping另一个容器时,我没有得到任何输出

(172.17.52.X ping 172.17.53.X)

VM1可以成功ping VM2。VM1上的容器也可以成功ping VM2,但当VM1上的容器ping VM2上的容器时,我没有得到任何输出。

实现这一点的一个非常简单的方法是使用

您可以通过以下方式安装它:

sudo wget -O /usr/local/bin/weave \
  https://github.com/zettio/weave/releases/download/latest_release/weave
sudo chmod a+x /usr/local/bin/weave
VM1 VM2 您刚刚用容器创建了一个虚拟网络。美妙之处在于,这些虚拟机可以在任何地方,只要其中至少有一个具有开放端口6783的公共IP

您甚至可以通过运行
weave launch-password”“
或(在
weave launch
之前导出
weave\u password=”“
)来启用。Disclamer:我是weave团队的一员。
(172.17.52.X ping 172.17.53.X)
sudo wget -O /usr/local/bin/weave \
  https://github.com/zettio/weave/releases/download/latest_release/weave
sudo chmod a+x /usr/local/bin/weave
sudo weave launch
C=$(sudo weave run 10.2.1.1/24 -t -i busybox)
sudo weave launch 192.168.122.129
C=$(sudo weave run 10.2.1.2/24 -t -i busybox)
docker exec $C ping -c 3 10.2.1.1/24