首页 > 解决方案 > docker-compose 中的网络模式容器

问题描述

使用普通的 docker,我可以像这样使用网络模式容器:

docker run -d --name container-b --network container:container-a <image>

这可以使用 docker-compose 来实现吗?

services:
  service-b:
    container_name: container-b
    network_mode: "container:container-a"

导致:

ERROR: Please provide 'network_mode: "bridge"' or 'network_mode: "host"' in your docker-compose.yaml

标签: dockerdocker-composedocker-networking

解决方案


来自https://docs.docker.com/compose/compose-file/compose-file-v3/#network_mode

笔记

在 swarm 模式下部署堆栈时,此选项将被忽略。

network_mode:“主机”不能与链接混合。

docker-compose如果您的“包装器”docker stack deploy在引擎盖下使用,它将不起作用。

你将不得不使用这样的东西:

docker network create some-other-network -d bridge --attachable --scope swarm

...some-other-network绑定到目标容器的位置。

接着:

version: "3.9"

services:
  my-service:
    image: ...
    networks:
      - some-other-network
    
...

networks:
  some-other-network:
    external: true

推荐阅读