You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器连接故障:Spring API无法连接PostgreSQL容器

问题解决:Spring API容器无法连接PostgreSQL容器

核心问题:数据库连接地址错误

在容器环境中,localhost指向容器自身而非主机或其他容器。你的Spring应用容器尝试连接localhost:5332,但这个地址在容器内部无法访问到PostgreSQL容器。

解决步骤:

  1. 修改application.yml中的数据库连接URL:
    将原来的:
url: jdbc:postgresql://localhost:5332/statistics

替换为:

url: jdbc:postgresql://postgres:5432/statistics
  • postgres是docker-compose中定义的PostgreSQL服务名称,Docker会自动在自定义网络api-postgres中解析这个名称到对应的容器IP
  • 5432是PostgreSQL容器内部的端口,而非映射到主机的5332
  1. 优化容器启动顺序(可选但推荐)
    虽然你已经配置了depends_on,但默认它只等待PostgreSQL容器启动,不会等待数据库服务完全就绪。修改docker-compose中restapi服务的depends_on配置,确保API在PostgreSQL健康检查通过后再启动:
depends_on:
  postgres:
    condition: service_healthy

其他验证点:

  • 确认spring.datasource.username和spring.datasource.password与docker-compose中PostgreSQL的POSTGRES_USER、POSTGRES_PASSWORD完全一致(当前配置是匹配的)
  • 检查自定义网络api-postgres是否正常生效:两个服务都已加入该网络,Docker会自动处理容器间的通信

修改后重新执行docker-compose up --build即可尝试连接。

内容的提问来源于stack exchange,提问作者Dusan Bjelica

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 17:47:17