>假设我的docker-compose中有2个服务:
version: "2.4"
services:
postgres:
build:
context: .
dockerfile: ./docker_config/dockerfiles/postgres.Dockerfile
volumes:
- ./docker_volumes/db/postgresql:/var/lib/postgresql
initializer:
build:
context: .
dockerfile: ./docker_config/dockerfiles/initializer.Dockerfile
depends_on: postgres
initializer
访问postgres
在为此 docker-compose 文件创建的网络中使用"postgres"
主机名,但现在我希望initializer
也与 LAN 中的某些主机进行交互,initializer
现在无法访问(所有请求都超时)。
我尝试在容器和initializer
上使用network-mode: bridge
,并且 LAN 访问有效,但在这些情况下initializer
无法访问postgres
。
如何使 LAN 和postgres
容器都可以从容器initializer
访问?
解决方案是将另一个网络添加到initializer
服务,而不是覆盖默认值。为清楚起见,代码:
version: "2.4"
networks:
lan_access:
driver: bridge
services:
postgres:
build:
context: .
dockerfile: ./docker_config/dockerfiles/postgres.Dockerfile
volumes:
- ./docker_volumes/db/postgresql:/var/lib/postgresql
initializer:
build:
context: .
dockerfile: ./docker_config/dockerfiles/initializer.Dockerfile
depends_on: postgres
networks:
- lan_access
- default