我在服务器上运行了2个不同的容器(应用程序和web_server)。它们在同一网络中,因为我将它们放在同一网络中,并且该网络的驱动程序是网桥。
networks:
app-network:
driver: bridge
现在,我有第三个容器,它需要连接我提到的两个容器之一。我尝试将第3个容器连接到第1个容器,如下所示:app:9000,但显示未找到主机。我猜这是因为它们位于不同的网络中。我应该怎么做才能使其正常工作?
答案 0 :(得分:1)
您需要两个容器都加入同一网络。通过创建一个新网络然后加入该网络,或者其中一个加入另一个容器的网络。
您有container1
和container2
的docker-compose.yml:
container3
的外部网络您拥有container3
的docker-compose.yml将是具有桥接网络的普通docker-compose。
您需要确保首先启动第三个容器,以便首先创建第三个网络,或者您可以使用docker cli手动创建第三个网络,并将定义更改为external
#docker-compose.yml
container1:
networks:
- first_network
- second_network
networks:
first_network:
driver: bridge
second_network:
external: true
#docker-compose.yml
container3:
networks:
- second_network
networks:
second_network:
driver: bridge