两台主机上的Docker容器直接通过IP地址进行通信
- 各项配置如下:
Docker version: 1.13.1
IP信息根据个人需求部署
? 主机1的IP地址为:192.168.1.128
? 主机2的IP地址为:192.168.1.129
? 为主机1上的Docker容器分配的子网:172.17.1.0/24
? 为主机2上的Docker容器分配的子网:172.17.2.0/24
2.编辑主机1上的 /etc/docker/daemon.json 文件,添加内容:
{ "bip": "172.17.1.252/24" }
编辑主机2上的 /etc/docker/daemon.json 文件,添加内容:
{ "bip": "172.17.2.252/24" }
3.主机1和主机2上均执行如下命令重启docker服务以使修改后的docker0网段生效
systemctl restart docker
-
主机1上添加路由规则如下:
route add -net 172.17.2.0 netmask 255.255.255.0 gw 192.168.1.129
主机2上添加路由规则如下:
route add -net 172.17.1.0 netmask 255.255.255.0 gw 192.168.1.128
5.主机1上添加iptables规则如下:
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -s 172.17.1.0/24 ! -d 172.17.0.0/16 -j MASQUERADE
主机2上添加如下规则:
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -s 172.17.2.0/24 ! -d 172.17.0.0/16 -j MASQUERADE
- 主机1&2上启动centos容器测试互ping即可:
docker run -it centos:latest /bin/bash
iptables -t nat -nL
Docker容器跨主机通信
原文:https://blog.51cto.com/14314637/2416463