如何使用docker-compose在容器之间公开服务

时间:2019-09-04 09:01:24

标签: docker-compose circleci

在circleci上,当我为一个工作声明多个泊坞窗时:

dockers:
   app: company/image
   selenium: selenium/image

app将公开端口4000,硒将公开端口4444。 然后从应用程序容器中,我可以通过localhost:4444访问硒服务,在硒容器中,我可以通过localhost:4000访问应用程序Web服务器。

但是,

docker-compose的行为有所不同。我只允许我从应用程序访问selenium:4444,从硒访问app:4000。

我希望docker-compose的行为类似于circleci,其中它允许我使用localhost:port来访问其他服务。我该怎么办?

1 个答案:

答案 0 :(得分:0)

达到上述目的的方法是通过networking_mode

我需要告诉docker-compose使用networking_mode = "services:app"运行selenium,以便仅使用localhost:PORT就可以从应用访问selenium侦听的每个端口(反之亦然)

在此进行解释:Can docker-compose share an ip between services with discrete ports?

在docker网络模型中,https://codability.in/docker-networking-explained/

对此进行了解释。
相关问题