将网络分配给一项服务是否会将其与docker-compose中的其他服务隔离?

时间:2018-10-18 11:36:21

标签: docker docker-compose

我有很多服务正在运行并共享默认网络。

现在,我想创建一个与默认网络隔离的IntegrationTest容器,因此我也可以测试haProxy。

  integration-test:
    image: image:some-image:tag
    container_name: integration-test
    command: node_modules/.bin/jest integration/
    networks:
      - frontend
    depends_on:
      - mongodb

是否已将网络分配给该服务,从而将其与其他服务隔离开了?还是我需要将另一个网络分配给所有其他服务?

1 个答案:

答案 0 :(得分:1)

TLDR;是的,它将把集成测试与您的docker-compose文件中的任何其他服务分开。

更长的版本...

默认情况下,docker-compose以project_default的模式为docker-compose.yml文件创建一个桥接网络(又称为默认网络)。

以下两个服务定义完全相同。

app:
  build: .
  networks:
    - default

app:
  build: .

如果您希望服务连接到其他网络,则必须同时列出default和其他网络。

app:
  build: .
  networks:
    - default
    - frontend

如果您只希望您的服务位于其他服务上,则只需从网络中删除default

app:
  build: .
  networks:
    - frontend

如果您对将哪些容器连接到什么网络有疑问,可以随时检查容器或网络。例如。 docker inspect frontenddocker inspect project_app_1