找不到 Docker 撰写网络条目

Can't find Docker Compose network entry

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

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

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

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

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

有人知道我错过了什么吗?

您在服务下定义的 network 应该在全局 networks 部分中定义(volumes 也是如此):

version 'X.Y'

services:
  calling_container:
    networks:
      - your_network

networks:
  your_network:
    external: true

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