Docker容器间通讯直接路由方式实现网络通讯

2020-06-17 07:01:45易采站长站整理

主机1和主机2上均执行如下命令重启docker服务以使修改后的docker0网段生效


systemctl restart docker

• 3. 添加路由规则

主机1上添加路由规则如下:


route add -net 192.168.200.0 netmask 255.255.255.0 gw 192.168.18.141

主机2上添加路由规则如下:


route add -net 192.168.100.0 netmask 255.255.255.0 gw 192.168.18.162

• 4. 配置iptables规则

主机1上添加如下规则:


iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 ! -d 192.168.0.0/16 -j MASQUERADE

主机2上添加如下规则:


iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -s 192.168.200.0/24 ! -d 192.168.0.0/16 -j MASQUERADE

• 5. 启动容器

主机1上启动centos容器:


docker run -it --name container1 centos /bin/bash

主机2上启动centos容器:


docker run -it --name container2 centos /bin/bash

• 分别在两台机器上安装ifconfig,并查看容器的ip,命令是:


[root@695ba390d221 /]# yum search ifconfig
[root@695ba390d221 /]# yum install net-tools.x86_64

主机1上的容器ip地址:

主机2上的容器ip:

• 6. 容器间直接通信

好了,现在两容器可以互ping了

主机1上ping:

主机2上ping:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对软件开发网的支持。如果你想了解更多相关内容请查看下面相关链接

您可能感兴趣的文章:阿里云esc服务器Docker部署单节点Mysql的讲解如何给一个正在运行的Docker容器动态添加VolumeDocker容器和本机之间的文件传输方法Docker数据存储总结Docker数据存储之tmpfs mounts详解Docker数据存储之Bind mounts详解Docker数据存储之Volumes详解docker完整配置nginx+php+mysql的方法步骤详解docker私有仓库搭建与使用实战第一次构建、运行、发布、获取docker镜像的步骤详解