假设我的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
,并且局域网访问有效,但在这些情况下initializer
无法访问postgres
。
如何从postgres
容器访问LAN和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