我docker-compose.yml在两个不同的文件夹中有两个单独的文件:
docker-compose.yml
~/front/docker-compose.yml
~/api/docker-compose.yml
如何确保in中的容器front可以将请求发送到in中的容器api?
front
api
我知道--default-gateway可以docker run为单个容器设置选项,以便可以为该容器分配特定的IP地址,但是使用时似乎没有此选项docker-compose。
--default-gateway
docker run
docker-compose
目前,我最终做了一个,docker inspect my_api_container_id然后查看输出中的网关。它可以工作,但问题是该IP是随机分配的,因此我不能依靠它。
docker inspect my_api_container_id
因此,此问题的另一种形式可能是:
但最后我要照顾的是:
您只需要确保要互相交谈的容器在同一网络上即可。网络是一流的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_
然后,他们可以使用服务名称互相交谈。从front您可以做到ping api,反之亦然。
ping api