从容器进行 Docker 组合访问 LAN



>假设我的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

相关内容

  • 没有找到相关文章

最新更新