postgresql - 如何在没有 ip 地址的情况下访问 postgres-docker 容器其他 docker 容器
问题描述
如何在没有 IP 地址的情况下访问 postgres-docker 容器其他 docker 容器?我想使用 myweb 将数据存储在 postgres 中。在给定主机的 jar 中,例如 localhost:5432/db..
这是我的撰写文件:
版本:“3” 服务: 我的网站: 构建:./myweb 容器名称:应用程序 端口: - “8080:8080” - “9090:9090” 网络: - 前线 - 后台 取决于: - “postgresdb” postgresdb: 构建:./mydb 图片:ppk:postgres9.5 卷: - 数据库数据:/var/lib/postgresql 端口: - “5432:5432” 网络: - 后台 卷: 数据库数据:{} 网络: 前线: 后台:
解决方案
而不是localhost:5432/db..
使用postgresdb: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"
推荐阅读
- c++ - 构建另一个值
- exploit - Write-4 原语是什么意思?
- tensorflow - 使用 tensorflow 在 keras 或 tflearn 中改变卷积核的形状
- python - 使用 Jupyter notebook 获取当前代码部分的文档字符串
- java - 在 Map Java 中转换嵌套的 JsonArray
- powershell-core - 没有前导 '.' 的子路径
- sql - Postgres通过排序删除所有重复记录
- api - 我使用 Python 使用/签署 AWS 产品广告 API 的最简单方法是什么?
- javascript - 解释当两种类型不相等时 JavaScript 如何隐式转换类型?
- python - 根据起始字母从字典中删除数据