Docker 容器间双向通信

Docker bidirectional communication between containers

我正在寻找在 docker containers.I 之间设置双向通信有以下容器:

1.Apache
2.Tomcat A
3.Tomcat B
4.Tomcat C
5.MySQL  

Apache 充当反向代理并将请求转发到 Tomcat A、B 和 C.All Tomcat 容器将与现在的 MySQL database.As 通信我在 Apache 中有发送请求到 tomcat 容器的链接,tomcat 容器有与 MySQL 数据库通信的链接。 现在我需要在 tomcat 容器之间建立双向通信,比如 Tomcat A 想与 Tomcat B 和 Tomcat C 和副 versa.How 交谈,我们可以通过Docker 作曲?是否可以在 docker-compose.yml 文件中提供双向链接?

提前致谢。

不,链接不是双向的,所以你不能用它来实现它。

你可以做的是将你的容器设置在同一个网络中,这样它们就可以通过容器名称相互访问。

例如

docker network create newnetwork
docker run -d --name apache --net=newnetwork Apache
docker run -d --name tomcatA --net=newnetwork TomcatA
...

这样做,容器 apache 将能够 ping/access tomcatA,而 tomcatA 将能够 ping/access apache。

看看如何将网络与 docker-compose 集成:https://docs.docker.com/compose/networking/#specifying-custom-networks

我不确定这部分,但是自从docker ~1.10,你似乎不需要创建网络,默认网络将所有容器连接在一起,所以你已经可以ping/access 每个容器都通过它们的名字从其他容器中分离出来。 (查看容器中的 /etc/hosts 文件,如果您看到其他容器名称和它们的 IP,您就可以开始了)