docker容器跨主机互联小实验 逃离我推掉我的手 2022-06-04 03:23 202阅读 0赞 环境: 两台通过vmware虚拟出来的主机 运行centos7操作系统 前面讲的通过link命令实现容器之间的互联,然而link命令只能实现单个主机中各个容器之间的连接。如果需要在不同的主机之间实现连接,必须通过其他的方式。 docker安装之后会默认创建一个名为docker0的虚拟网桥,当创建容器的时候会创建一组veth pair接口。这对接口一端在容器中,称为eth0,另一端被挂载到了docker0网桥上,以veth开头,这样主机就可以和容器之间进行通信。 跨主机的情况下可以通过linux的路由机制来解决 ![Center][] 1.在第一台主机上修改Docker0的网络地址。 修改方式可以参考: http://blog.csdn.net/lin521lh/article/details/78470732 2.在左边的主机上添加路由规则: route add -net 172.18.0.0/16 gw 192.168.18.128 同样的在右边的主机上添加路由规则: route add -net 172.17.0.0/16 gw 192.168.18.130 3.重新设置防火墙 iptables -F ; iptables -t nat -F 两个容器之间可以相互ping通。 数据包的发送流程: Container(右)->docker0(右)->eth0(右)->eth0(左)->docker0(左)->container(左) [Center]: /images/20220604/547395dea9bc4cffa52175d23f6d453c.png
还没有评论,来说两句吧...