跨主机容器间通讯解决方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跨主机容器间通讯解决方案相关的知识,希望对你有一定的参考价值。

1.docker集群间容器是否可以通信。

创建容器服务来测试:docker service create --name tomcat1 --replicas 2 192.168.56.200:5000/tomcat

技术分享图片
技术分享图片
测试结果ping不通。
技术分享图片

2.docker 在早前的时候没有考虑跨主机的容器通信,这个特性直到 docker 1.9 才出现。在此之前,如果希望位于不同主机的容器能够通信,一般有几种方法:
使用端口映射:直接把容器的服务端口映射到主机上,主机直接通过映射出来的端口通信
把容器放到主机所在的网段:修改 docker 的 ip 分配网段和主机一致,还要修改主机的网络结构
第三方项目:flannel,weave 或者 pipework 等,这些方案一般都是通过 SDN 搭建 overlay 网络达到容器通信的

解决方案:创建overlay网络
docker network create -d overlay net
docker network ls
技术分享图片
再创建容器进行测试
docker service create --name tomcat2 --mode global --network net 192.168.56.200:5000/tomcat
技术分享图片![]

技术分享图片
创建镜像信息:docker inspect cf2bb17e353e
技术分享图片
有了overlay网络可以ping通了。
技术分享图片

两个容器可以通信是因为加了一个overlay层。
技术分享图片

以上是关于跨主机容器间通讯解决方案的主要内容,如果未能解决你的问题,请参考以下文章

Docker网络模式介绍

Docker 跨主机网络(十六)

docker flannel网络部署和路由走向分析

跨主机网络概述 - 每天5分钟玩转 Docker 容器技术(48)

容器中跨主机的网络方案-Weave

容器中跨主机的网络方案-Calico