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

Docker容器中PostgreSQL连接报错:Adminer可连但pgAdmin/.NET Core无法访问

问题根源

该问题由两个配置疏漏导致:

  • PostgreSQL服务未做端口映射到宿主机:Adminer和PostgreSQL同属Docker Compose创建的内部网桥网络,可直接通过服务名db互相访问,无需暴露端口到宿主机;但运行在宿主机网络的pgAdmin、.NET Core程序无法直接访问容器内部的5432端口。
  • 环境变量容易被混淆使用:配置中POSTGRES_USER(数据库用户名)的值为mtpass,POSTGRES_PASSWORD(数据库密码)的值为mtuser,连接时容易填反参数。

修复步骤

  1. 修改docker-compose.yml配置,给db服务添加端口映射,完整参考配置如下:
version: '1'

services:
  db:
    image: postgres
    restart: always
    # 新增端口映射,前者为宿主机端口,后者为容器内postgres默认端口
    ports:
      - 5432:5432
    environment:
      POSTGRES_PASSWORD: mtuser
      POSTGRES_USER: mtpass

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

备注:若宿主机5432端口已被占用,可将映射改为5433:5432,后续连接时使用5433端口即可。

  1. 执行docker-compose up -d重启容器使配置生效。
  2. 本地程序连接参数配置:
    • 主机地址:127.0.0.1或localhost
    • 端口:你配置的宿主机映射端口,默认填5432
    • 用户名:mtpass
    • 密码:mtuser

内容的提问来源于stack exchange,提问作者Mehmet Topçu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:30:01