如何在没有IP地址的情况下访问postgres-docker容器其他docker容器? 我想使用 myweb 将数据存储在 postgres 中。在给定主机的 jar 中,例如 localhost:5432/db..
这是我的撰写文件:
version: "3" services: myweb: build: ./myweb container_name: app ports: - "8080:8080" - "9090:9090" networks: - front-tier - back-tier depends_on: - "postgresdb" postgresdb: build: ./mydb image: ppk:postgres9.5 volumes: - dbdata:/var/lib/postgresql ports: - "5432:5432" networks: - back-tier volumes: dbdata: {} networks: front-tier: back-tier:
最佳答案
使用 postgresdb:5432/db..
连接字符串,而不是 localhost:5432/db..
。
默认情况下,容器具有与服务名称相同的主机名。
这是我的最小工作示例,它将 java 客户端(boxfuse/flyway)与 postgres 服务器连接。最重要的部分是健康检查,它将myweb
容器的启动延迟到postgres 准备好接受连接的时间。
请注意,这可以通过docker-compose up
直接执行,它没有任何其他依赖项。两个镜像均来自 docker hub。
version: '2.1'
services:
myweb:
image: boxfuse/flyway
command: -url=jdbc:postgresql://postgresdb/postgres -user=postgres -password=123 info
depends_on:
postgresdb:
condition: service_healthy
postgresdb:
image: postgres
environment:
- POSTGRES_PASSWORD=123
healthcheck:
test: "pg_isready -q -U postgres"
关于postgresql - 如何在没有ip地址的情况下访问postgres-docker容器其他docker容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50927680/