主機名docker |
主機IPvim |
Docker0_IPtcp |
Docker1測試 |
192.168.88.130spa |
172.17.0.1unix |
Docker2rest |
192.168.88.131ip |
172.18.0.1路由 |
設定指定的dokcer0的IP table
#vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/docker daemon --bip=172.18.42.1/16 -H fd:// -H=unix:///var/run/docker.sock
systemctl daemon-reload
systemctl restart docker #有可能docker起不來,此時重啓機器便可。
設定路由規則
route add -net 172.17.0.0/16 gw 192.168.88.131 #對端主機IP
route add -net 172.18.0.0/16 gw 192.168.88.130
關閉火牆規則,對icmp的reject:
iptables -F; iptables -t nat –F
測試
在docker1上的容器可以和docker2上的容器通訊
注意使用tcpdump分析和排錯: tcpdump icmp
數據包流向
docker1_container1_eth0->docker1_docker0->docker1_enoXX-> docker2_enoXX(docker1'gw)->docker2_docker0 -> docker2_container1_eth0