Spring Boot连接Docker中Postgres数据库容器失败求助
问题排查:Spring Boot + Docker Postgres 连接失败(
The connection attempt failed. db) 可能的原因及解决办法
1. 端口映射未配置或配置错误
Docker容器内的Postgres默认使用5432端口,若docker-compose.yml里没把这个端口映射到宿主机,宿主机上的DBeaver无法直接访问容器内的数据库。
- 检查
docker-compose.yml的Postgres服务块,确保有正确的端口映射:
修改后执行ports: - "5432:5432"docker-compose down && docker-compose up -d重启容器。
2. DBeaver连接参数错误
- 主机地址:不要用容器名
db(仅Docker内部网络可用),宿主机访问需填localhost或宿主机IP。 - 端口:如果映射了非默认的宿主机端口(比如
5433:5432),DBeaver要填对应的宿主机端口。 - 用户名/密码/数据库名:必须和
docker-compose.yml中Postgres的环境变量(POSTGRES_USER、POSTGRES_PASSWORD、POSTGRES_DB)完全一致。
3. Postgres容器未完成初始化
Postgres容器启动时需要初始化数据库,若在服务就绪前就尝试连接,会出现连接失败。
- 查看Postgres容器日志,确认出现
database system is ready to accept connections后再用DBeaver连接。
4. 防火墙或网络拦截
宿主机的防火墙可能拦截了Postgres端口的访问,检查防火墙规则,确保允许宿主机访问映射的Postgres端口。
5. Docker网络配置问题
若自定义了Docker网络,要确保Spring容器和Postgres容器在同一网络中;同时确认宿主机能正常访问该网络的端口。
内容的提问来源于stack exchange,提问作者Senjhu
相关产品推荐
相关产品推荐

