我正在尝试从在我的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"
任何人都知道我缺少什么?
答案 0 :(得分:1)
您在服务下定义的network
预计会在全局networks
部分内定义(volumes
同样如此):
version 'X.Y'
services:
calling_container:
networks:
- your_network
networks:
your_network:
external: true
你真的必须为你的调用容器使用单独的compose yml吗?如果您的容器都相互交互,则应将两者添加到同一个yml中。在这种情况下,您不必指定任何网络,它们将自动位于同一网络中。