0

我正在尝试从我的 Win10 笔记本电脑上运行的一个 Docker 容器与另一个也在本地运行的容器进行通信。

我启动目标容器,我看到以下网络:

docker network ls
NETWORK ID          NAME                                                DRIVER              SCOPE
...
f85b7c89dc30        w3virtualservicew3id_w3-virtual-service-w3id        bridge              

然后我用 . 启动我的调用容器docker-compose up。然后我可以通过命令行成功地将我的另一个容器连接到网络:

docker network connect w3virtualservicew3id_w3-virtual-service-w3id w3vacationatibmservice_rest_1

但是,我无法通过将其添加到调用容器network的文件部分来连接到同一个网络。docker-compose.yml我的印象是他们基本上都做了同样的事情:

networks:
  - w3_vacation-at-ibm_service
  - w3virtualservicew3id_w3-virtual-service-w3id

错误消息告诉我它找不到网络,这是不正确的,因为我可以通过命令行连接,所以我知道它确实存在并且正在运行:

ERROR: Service "rest" uses an undefined network "w3virtualservicew3id_w3-virtual-service-w3id"

有人知道我缺少什么吗?

4

1 回答 1

1

network您在服务下定义的内容预计将在全局部分中定义networks(同样的事情volumes):

version 'X.Y'

services:
  calling_container:
    networks:
      - your_network

networks:
  your_network:
    external: true

您真的必须为调用容器使用单独的 compose yml 吗?如果你的两个容器相互交互,你应该将它们添加到同一个 compose yml 中。在这种情况下,您不必指定任何网络,它们将自动位于同一网络内。

于 2017-11-03T21:47:53.023 回答