Docker跨主机通信具体方法

在工作中docker容器会部署在不同的服务器中,那么就涉及到不同的机器间容器的相互通信。我们都知道docker-compose用于容器编排,但是只能解决单台服务器上容器间的通信问题。在本课程中我们将实现不同的服务器间容器的通信。

设有三台虚拟机

   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/24。

   #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虚拟网段加入到自己的路由表中

   # 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容器可以互相访问了。

网页标题:Docker跨主机通信具体方法
文章网址:http://www.shufengxianlan.com/qtweb/news20/463120.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联