Docker:跨主機通訊

修改主機docker默認的虛擬網段,而後在各自主機上分別把對方的docker網段加入到路由表中,配合iptables便可實現docker容器誇主機通訊。配置方法以下:html

設有三臺虛擬機docker

  • v1: 10.108.8.200
  • v2: 10.108.8.205
  • v3: 10.108.8.202

更改虛擬機docker0網段,v1爲172.17.1.1/24,v2爲172.17.2.1/24,v3爲172.17.3.1/24shell

#v1
sudo ifconfig docker0 172.17.1.1 netmask 255.255.255.0
sudo bash -c 'echo DOCKER_OPTS="-B=docker0" >> /etc/default/docker'
sudo service docker restart
# v2
sudo ifconfig docker0 172.17.2.1 netmask 255.255.255.0
sudo bash -c 'echo DOCKER_OPTS="-B=docker0" >> /etc/default/docker'
sudo service docker restart
# v3
sudo ifconfig docker0 172.17.3.1 netmask 255.255.255.0
sudo bash -c 'echo DOCKER_OPTS="-B=docker0" >> /etc/default/docker'
sudo service docker restart

而後在v1上把v2的docker虛擬網段加入到路由表中,在v2上將v1的docker虛擬網段加入到本身的路由表中bash

# v1 10.108.8.200
sudo route add -net 172.17.2.0 netmask 255.255.255.0 gw 10.108.8.205
sudo iptables -t nat -F POSTROUTING
> sudo iptables -t nat -A POSTROUTING -s 172.17.1.0/24 ! -d 172.17.0.0/16 -j MASQUERADE
# v2 10.108.8.205   v3   10.108.8.202
sudo route add -net 172.17.1.0  netmask 255.255.255.0  gw 10.108.8.200
sudo iptables -t nat -F POSTROUTING
sudo iptables -t nat -A POSTROUTING -s 172.17.2.0/24 ! -d 172.17.0.0/16 -j MASQUERADE

至此,兩臺虛擬機中的docker容器能夠互相訪問了。rest

原文地址:https://www.35youth.cn/531.htmlcode

相關文章
相關標籤/搜索