多个docker-compose项目之间的通信

docker-compose.yml在两个不同的文件夹中有两个单独的文件:

  • ~/front/docker-compose.yml
  • ~/api/docker-compose.yml

如何确保in中的容器front可以将请求发送到in中的容器api

我知道--default-gateway可以docker

run为单个容器设置选项,以便可以为该容器分配特定的IP地址,但是使用时似乎没有此选项docker-compose

目前,我最终做了一个,docker inspect

my_api_container_id然后查看输出中的网关。它可以工作,但问题是该IP是随机分配的,因此我不能依靠它。

因此,此问题的另一种形式可能是:

  • 我可以使用docker-compose将固定IP地址分配给特定容器吗?

但最后我要照顾的是:

  • 两个不同的docker-compose项目如何相互通信?

回答:

您只需要确保要互相交谈的容器在同一网络上即可。网络是一流的docker构造,并不特定于组合。

# front/docker-compose.yml

version: '2'

services:

front:

...

networks:

- some-net

networks:

some-net:

driver: bridge

# api/docker-compose.yml

version: '2'

services:

api:

...

networks:

- front_some-net

networks:

front_some-net:

external: true

注意:根据“项目名称”为您的应用程序网络指定名称,该名称基于其所在目录的名称,在这种情况下front_,添加了前缀

然后,他们可以使用服务名称互相交谈。从front您可以做到ping api,反之亦然。

以上是 多个docker-compose项目之间的通信 的全部内容, 来源链接: utcz.com/qa/426159.html

回到顶部