使用不同docker compose配置构建的容器之间的可见性
我需要在sass\u php中使用服务api\u mysql。容器是用不同的docker-compose.yml文件构建的,我知道它们属于不同的网络,它们无法看到它们之间的区别。以下是我当前的配置,但当我想使用我得到的服务时: “php_网络_getaddresses:getaddrinfo失败:名称未解析”: docker-compose-1.yml使用不同docker compose配置构建的容器之间的可见性,docker,docker-compose,Docker,Docker Compose,我需要在sass\u php中使用服务api\u mysql。容器是用不同的docker-compose.yml文件构建的,我知道它们属于不同的网络,它们无法看到它们之间的区别。以下是我当前的配置,但当我想使用我得到的服务时: “php_网络_getaddresses:getaddrinfo失败:名称未解析”: docker-compose-1.yml networks: api: services: api_mysql: ... networks: ap
networks:
api:
services:
api_mysql:
...
networks:
api:
api_php:
...
depends_on:
- api_mysql
networks:
api:
docker-compose-2.yml
version: '3'
networks:
api:
sass:
services:
sass_mysql:
...
networks:
sass:
sass_php:
...
depends_on:
- sass_mysql
networks:
api:
sass:
因为他们生活在不同的网络中,所以他们的域名也是如此。
sass\u php
使用的DNS无法访问repo1\u api
网络中可用的域名。它可以访问repo2\u api
网络中的那些,但是api\u mysql
不使用这个网络
因此,为了补救,您可以在docker compose
文件之外声明您的网络,并以这种方式添加它:
networks:
default:
external:
name: my-pre-existing-network
参考:
或者您可以向本地主机公开api\u mysql
端口,并通过它进行访问
我更喜欢第一种方法
networks:
default:
external:
name: my-pre-existing-network