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

如何从宿主机连接Docker Compose部署的PostgreSQL数据库?

解决宿主机连接Docker Compose部署的PostGIS数据库问题

问题分析

连接失败由几个明确问题导致:

  • .env文件中环境变量拼写错误,可能引发数据库初始化异常
  • 宿主机无法解析Docker Compose服务名database(该名称仅在容器所属的Docker内部网络中可被其他容器识别)
  • 端口映射失效或数据库未正常启动,导致localhost连接失败

分步解决方案

1. 修正.env文件的拼写错误

你的prod.env文件存在两处变量名拼写错误,需修正为:

# 原错误内容
# POSTGERS_DB=database
# POSTGERS_PORT=5432

# 修正后
POSTGRES_DB=database
POSTGRES_PORT=5432

修正后重启容器:

docker-compose down
docker-compose up -d

2. 验证数据库容器状态

检查容器是否正常运行:

docker-compose ps

查看数据库启动日志,确认无初始化错误:

docker-compose logs database

当日志中出现database system is ready to accept connections时,说明数据库已正常启动。

3. 调整pgAdmin连接参数

宿主机无法直接使用Docker Compose服务名database,需改用以下连接信息:

Host: localhost(或服务器内网/公网IP)
Port: 5432
Username: postgres
Password: password
Database: database(对应修正后的POSTGRES_DB值)

4. 验证端口映射有效性

在宿主机执行命令,确认端口5432已被容器监听:

netstat -tulpn | grep 5432

若输出包含docker-proxy且监听0.0.0.0:5432,说明端口映射配置正常。

额外说明

  • Docker Compose服务名仅在容器所属的内部网络中生效,宿主机需通过localhost或服务器IP访问映射后的端口
  • POSTGRES_HOST_AUTH_METHOD=trust允许本地无密码连接,但你已设置密码,连接时仍需填写密码以匹配配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 07:52:16