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

Docker部署PostgreSQL与pgAdmin报Address not available错误排查

排查修复方案

核心问题定位

出现该报错由两个高频配置错误共同导致:

  • PostgreSQL容器启动配置错误,PGDATA路径使用了Windows本地路径格式,Linux环境的Postgres镜像无法识别,容器实际启动失败,5432端口未正常监听
  • pgAdmin与PostgreSQL运行在独立的隔离容器中,pgAdmin容器内的localhost指向自身容器内部,无法直接通过localhost访问宿主机或其他容器的服务

分步修复操作

1. 修复PostgreSQL容器配置,验证服务正常启动

首先清理之前启动异常的旧容器:

docker rm -f vy_posgres_for_acc

重新启动PostgreSQL容器,注意不要直接把Windows路径传给容器内的PGDATA环境变量,使用Docker卷挂载的方式映射数据目录,使用官方镜像默认的容器内数据路径即可:

docker run -d --name vy_posgres_for_acc -p 5432:5432 -e POSTGRES_PASSWORD=postgres -e POSTGRES_USER=postgres -v D:\docker_mount\postgres\data:/var/lib/postgresql/data postgres:14.4

启动后执行命令验证服务状态:

  • 执行docker ps,确认vy_posgres_for_acc容器状态为Up
  • 执行docker logs vy_posgres_for_acc,日志末尾出现database system is ready to accept connections即为启动正常

2. 配置容器网络,实现两个容器互通

Docker默认桥接网络不支持直接通过容器名解析通信,需要自定义桥接网络:

  1. 创建自定义网络:
    docker network create pg-network
    
  2. 将正常运行的PostgreSQL容器接入该网络:
    docker network connect pg-network vy_posgres_for_acc
    
  3. 清理旧的pgAdmin容器,重新启动时接入同一网络:
    docker rm -f $(docker ps -aq --filter "ancestor=dpage/pgadmin4:latest")
    docker run -d --name pgadmin -p 5050:80 -e PGADMIN_DEFAULT_EMAIL=donhuvy@hotmail.com -e PGADMIN_DEFAULT_PASSWORD=postgres --network pg-network dpage/pgadmin4:latest
    

3. 正确配置pgAdmin连接参数

访问http://localhost:5050登录pgAdmin后,新建数据库连接时按以下参数填写:

  • 主机名/地址:vy_posgres_for_acc(Docker自定义网络会自动解析容器名为对应容器IP,不需要填写IP或localhost)
  • 端口:5432
  • 用户名:postgres
  • 密码:postgres

备选方案:如果不想配置自定义网络,主机名可以填写host.docker.internal,这是Windows Docker Desktop提供的特殊域名,会指向宿主机,通过宿主机的5432端口映射连接PostgreSQL,稳定性略低于同容器网络方案。


内容的提问来源于stack exchange,提问作者Đỗ Như Vỹ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 08:15:43