找不到Docker Compose网络条目

时间:2017-11-03 21:06:57

标签: docker docker-compose docker-network

我正在尝试从在我的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"

任何人都知道我缺少什么?

1 个答案:

答案 0 :(得分:1)

您在服务下定义的network预计会在全局networks部分内定义(volumes同样如此):

version 'X.Y'

services:
  calling_container:
    networks:
      - your_network

networks:
  your_network:
    external: true

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