不同虚拟机之间的容器通信

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不同虚拟机之间的容器通信相关的知识,希望对你有一定的参考价值。

使不通虚拟机中的docker通信

web1的ip是192.168.8.126
web2的ip是192.168.8.127
mysql的ip是192.168.8.130

(1)修改docker网桥ip

web1:

ifconfig docker0 172.17.1.1 netmask 255.255.255.0
service docker restart

web2:

ifconfig docker0 172.17.2.1 netmask 255.255.255.0
service docker restart

Mysql:

ifconfig docker0 172.17.3.1 netmask 255.255.255.0
service docker restart

(2)添加路由

#web1

route add -net 172.17.3.0 netmask 255.255.255.0 gw 192.168.8.130
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -s 172.17.1.0/24 ! -d 172.17.0.0/16 -j MASQUERAD

#web2:

route add -net 172.17.3.0 netmask 255.255.255.0 gw 192.168.8.130
sudo iptables -t nat -F POSTROUTING
sudo iptables -t nat -A POSTROUTING -s 172.17.2.0/24 ! -d 172.17.0.0/16 -j MASQUERADE

#mysql:

route add -net 172.17.1.0 netmask 255.255.255.0 gw 192.168.8.126
sudo iptables -t nat -F POSTROUTING
sudo iptables -t nat -A POSTROUTING -s 172.17.3.0/24 ! -d 172.17.0.0/16 -j MASQUERADE
route add -net 172.17.2.0 netmask 255.255.255.0 gw 192.168.8.127
sudo iptables -t nat -F POSTROUTING
sudo iptables -t nat -A POSTROUTING -s 172.17.3.0/24 ! -d 172.17.0.0/16 -j MASQUERADE

(3) 测试

在mysql主机上的容器里ping web1 和 web2:
ping 192.168.8.126
技术分享图片

ping 192.168.8.127
技术分享图片

以上是关于不同虚拟机之间的容器通信的主要内容,如果未能解决你的问题,请参考以下文章

不同虚拟化平台的虚拟机之间进行网络通信

docker容器虚拟化

虚拟机之间互联通信

hyper-v中可以设置的虚拟机网络类型都有哪些

虚拟机三个路由器之间连通

virtualbox主机与虚拟机之间互相通信教程