docker容器无法连接到其他网络中的其他容器

时间:2019-03-01 16:36:07

标签: docker docker-compose dockerfile

我在服务器上运行了2个不同的容器(应用程序和web_server)。它们在同一网络中,因为我将它们放在同一网络中,并且该网络的驱动程序是网桥。

networks:
  app-network:
    driver: bridge

现在,我有第三个容器,它需要连接我提到的两个容器之一。我尝试将第3个容器连接到第1个容器,如下所示:app:9000,但显示未找到主机。我猜这是因为它们位于不同的网络中。我应该怎么做才能使其正常工作?

1 个答案:

答案 0 :(得分:1)

您需要两个容器都加入同一网络。通过创建一个新网络然后加入该网络,或者其中一个加入另一个容器的网络。

您有container1container2的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