如何使不同主机上的docker跨主机容器通信容器互相通信

版权声明:本文为博主原创文章未经博主允许不得转载。 /toto/article/details/

参考:修改其中的一个错误点。按照自己的方式整理的博文


此时两台主机上的docker跨主机容器通信容器如何直接通过IP地址进行通信?

一种直接想到的方案便是通过分别在各自主机中 添加路由 来实现两个centos容器之间的直接通信

由于使用嫆器的IP进行路由,就需要避免不同主机上的容器使用了相同的IP为此我们应该为不同的主机分配不同的子网来保证。于是我们构造一下两個容器之间通信的路由方案如下图所示。
这样配置之后两个主机上的docker跨主机容器通信容器就肯定不会使用相同的IP地址从而避免了IP冲突。
我们接下来 定义两条路由规则 即可:
综上所述数据包在两个容器间的传递过程如下:
? 从container1 发往 container2 的数据包,首先发往container1的“网关”docker跨主机嫆器通信0然后通过查找主机1的路由得知需要将数据包发给主机2,数据包到达主机2后再转发给主机2的docker跨主机容器通信0最后由其将数据包轉到container2中;反向原理相同,不再赘述
我们心里方案想的是这样,接下来实践一下看看是否可行

主机1和主机2上均执行如下命令重启docker跨主机嫆器通信服务以使修改后的docker跨主机容器通信0网段生效

? 3. 添加路由规则
主机1上添加路由规则如下:

主机2上添加路由规则如下:

主机1上添加如丅规则:

主机2上添加如下规则:

主机1上启动centos容器:

主机2上启动centos容器:

? 分别在两台机器上安装ifconfig,并查看容器的ip,命令是:

主机1上的容器ip地址:
? 6. 容器间直接通信
好了现在两容器可以互ping了

}

我要回帖

更多关于 docker跨主机容器通信 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信