[英]visibility between containers built with different docker-compose configuration
我需要在sass_php 中使用服務 api_mysql 。 容器是用不同的 docker-compose.yml 文件構建的,我知道它們屬於不同的網絡,它們之間看不到。 以下是我當前的配置,但是當我想使用我得到的服務時:“php_network_getaddresses: getaddrinfo failed: Name does not resolve”:
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
bcad56c87a8c repo1_api bridge local
196f42d7cbea repo2_api bridge local
79b41a714b48 repo2_sass bridge local
docker-compose-1.yml
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_php 使用的sass_php
不訪問repo1_api
網絡中可用的域名。 它可以訪問repo2_api
網絡中的網絡,但api_mysql
不使用該網絡。
因此,要補救,您可以在docker-compose
文件之外聲明您的網絡並以這種方式添加:
networks:
default:
external:
name: my-pre-existing-network
參考: https://docs.docker.com/compose/networking/#use-a-pre-existing-network
或者您可以將EXPOSE
端口api_mysql
到您的本地主機並通過它訪問。
我更喜歡第一種方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.