假设我在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
在为此docker-compose文件创建的网络中使用postgres
主机名访问"postgres"
,但现在我希望initializer
也可以与LAN中的某些主机交互, initializer
现在无法访问(所有请求都超时)。
我尝试在两个容器上以及仅在network-mode: bridge
上使用initializer
,并且可以进行LAN访问,但是在这些情况下initializer
无法访问postgres
。
如何通过postgres
容器访问LAN和initializer
容器?
答案 0 :(得分:1)
解决方案是向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