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

docker容器无法连接到不同网络中的其他容器,docker,docker-compose,dockerfile,Docker,Docker Compose,Dockerfile,我有两个不同的容器在我的serverapp和web_服务器上运行。它们在同一个网络中,因为我把它们放在同一个网络中,该网络的驱动程序是网桥 networks: app-network: driver: bridge 现在,我有第三个容器,它需要连接我提到的两个容器中的一个。我尝试从第三个容器连接到第一个容器,如下所示:app:9000,但它说找不到主机。我猜这是因为他们在不同的网络中。我应该怎么做才能使它工作?您需要两个容器加入同一个网络。或者创建一个新的网络,然后使其加入,或者其

我有两个不同的容器在我的serverapp和web_服务器上运行。它们在同一个网络中,因为我把它们放在同一个网络中,该网络的驱动程序是网桥

networks:
  app-network:
    driver: bridge

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

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

docker-compose.yml,其中包含container1和container2:

定义属于container3的外部网络 将这两个容器中的一个添加到外部网络中,如第一个代码段所示 您拥有container3的docker-compose.yml将是一个具有桥接网络的普通docker-compose

您需要确保首先启动第三个容器以允许首先创建第三个网络,或者您可以使用docker cli手动创建第三个网络并将定义更改为外部


我该怎么做?我已经更新了我的答案。如果不清楚,请让我知道,这样我可以增强它,让它更简单。我在docker-compose1.yaml中有容器1,在docker-compose2.yaml中有容器2。他们目前在不同的网络中。我需要的是创建另一个网络。容器2需要连接容器1。那么,哪一个应该有桥接器,哪一个是外部桥接器呢?除非您需要先从特定的桥接器开始,否则哪一个将拥有桥接器并不重要。您甚至可以手动创建网络,然后使两个容器都加入网络,但其中一个应该具有外部权限?如果两者都有桥牌,那就行不通了。
#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