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

Spring Boot无法连接Docker中的PostgreSQL数据库求助

解决Spring Boot无法连接Docker中PostgreSQL的问题

核心问题分析

Docker Compose默认会为创建的服务生成独立内部网络,服务间可通过服务名(比如db)互相访问,但本地运行的Spring Boot应用不在这个内部网络内,无法解析db主机名——这也是Docker日志里看不到登录尝试的原因:请求根本没到达PostgreSQL容器。

解决方案

1. 修改Spring Boot数据库连接地址

将application.properties中的数据库URL替换成本地映射地址:

spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=admin
spring.datasource.driver-class-name=org.postgresql.Driver

你的docker-compose.yml已将容器5432端口映射到本地5432端口,本地应用通过localhost:5432即可访问Docker内的PostgreSQL。

2. 验证容器运行状态

  • 执行docker ps确认PostgreSQL容器处于Up状态
  • 执行docker logs <你的postgres容器ID>,查看日志中是否出现database system is ready to accept connections类信息,确认容器已正常启动

3. 检查端口占用情况

若修改URL后仍无法连接,检查本地5432端口是否被其他程序占用:

  • Windows:netstat -ano | findstr :5432
  • Linux/Mac:lsof -i :5432
    若端口被占用,可停止占用程序,或修改docker-compose.yml端口映射为其他端口(比如5433:5432),同时更新Spring Boot的URL为localhost:5433

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 15:40:58