兩臺主機之間dokcer容器如何通訊
問題場景:
a、b兩臺主機安裝docker後,兩臺主機的docker容器是不能直接通訊的,首先修改預設網段為不同網段,如 172.17.0.0 / 172.27.0.0。
具體示例:
a ip為:192.168.1.52, docker網段為 172.17.0.0/254
b ip為:192.168.1.87,docker網段為 172.27.0.0/254
實現:
路由表新增彼此配置:
a機器新增路由:route add -net 172.27.0.0/24 gw 192.168.1.87
b機器新增路由:route add -net 172.17.0.0/24 gw 192.168.1.52
新增轉發
iptables 方式
a機器:iptables -t nat -A POSTROUTING -s 10.42.0.0/24 ! -d 10.42.1.0/16 -j MASQUERADE
b機器:iptables -t nat -A POSTROUTING -s 10.42.1.0/24 ! -d 10.42.0.0/16 -j MASQUERADE
firewalld方式
a機器:firewall-cmd --permanent --zone=trusted --change-interface=docker0
b機器:firewall-cmd --permanent --zone=trusted --change-interface=docker0
開啟轉發:sysctl net.ipv4.conf.all.forwarding=1
上述配置完成後立即生效,進入a容器ping b容器即可ping通
參考命令
檢視docker網路 ifconfig docker0
檢視容器資訊 docker inspect 容器id
進入指定終端 docker exec -it 容器id /bin/bash
轉載地址:https://blog.csdn.net/qq_37883792/article/details/116700957