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,您就可以开始了)
我正在寻找在 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,您就可以开始了)