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

Docker环境下Adminer无法连接PostgreSQL服务器的求助

PostgreSQL + Adminer Docker Compose 连接失败解决方案

问题背景

使用Docker Compose部署PostgreSQL 15.2(Debian镜像)和Adminer,容器均正常启动,但通过Adminer连接时提示连接被拒绝,PostgreSQL日志显示已正常监听0.0.0.0:5432。

可行连接方案

1. 修改Adminer连接的主机地址(核心解决方法)

在Docker Compose的默认网络中,服务名可作为主机名直接访问。Adminer容器和PostgreSQL容器处于同一网络,因此不能用localhost作为主机地址,需替换为PostgreSQL的服务名:

  • 打开Adminer页面:http://localhost:8080/
  • 连接表单填写:
    • 主机:db(对应docker-compose.yml中PostgreSQL的服务名)
    • 用户名:postgres
    • 密码:pswd
    • 数据库:auth_db
  • 点击「登录」即可连接。

2. 检查宿主机端口占用情况

如果宿主机本地已有PostgreSQL或其他进程占用5432端口,会导致容器端口映射失效:

  • Linux/macOS执行命令检查端口:
    netstat -tulpn | grep 5432
    
  • Windows执行命令检查端口:
    netstat -ano | findstr :5432
    
  • 若端口被占用,修改docker-compose.yml的端口映射(例如改为5433:5432),然后重启容器:
    docker-compose down && docker-compose up -d
    

    注:此修改仅影响宿主机到容器的连接,Adminer内部连接仍使用db作为主机名。

3. 验证pg_hba.conf的连接权限

若上述方法无效,检查映射卷./postgres中的pg_hba.conf,确保允许Docker网络的连接:

  • 在pg_hba.conf中添加或修改规则:
    host    all             all             172.17.0.0/16          scram-sha-256
    
  • 重启PostgreSQL容器:
    docker-compose restart db
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 12:35:17