Windows Docker PostgreSQL 端口绑定失败问题记录

Windows Docker PostgreSQL 端口绑定失败问题记录


问题现象

  • 客户端连接 localhost:55432 报错:Connection refused (10061)

  • 执行 netstat -ano | findstr :55432 无任何输出,显示端口未被占用

  • Docker 容器状态为 Running,PostgreSQL 日志显示 database system is ready to accept connections,说明容器内服务正常

  • 容器配置显示端口映射为 HostPort: 55432ContainerPort: 5432,配置看似正确

根本原因

  1. Windows 系统端口排除范围(Hyper-V/WSL 保留端口)

    Windows 会为虚拟化网络预留一段端口,即使没有进程占用,也会在内核层面标记为 "不可用",普通进程(包括 Docker)无法绑定。55432 端口很可能落在这个范围内。

  2. Docker 网络模式冲突

    自定义网络(如 infra_default)在 Windows 上容易出现网络转发异常,导致端口映射失效。


解决方案(按优先级)

方案 1:重置 WinNAT(无需重启电脑,最有效)

作用:重置 Windows NAT 服务,释放被系统 "隐性锁定" 的端口。

操作步骤:

  1. 管理员身份 打开 PowerShell。

  2. 执行以下命令:

    powershell 复制代码
    net stop winnat
    net start winnat
  3. 重启 Docker Desktop。

  4. 尝试重新连接数据库。


方案 2:更换宿主机端口(100% 可解决,推荐)

放弃 55432,更换一个不在系统保留范围内的端口,例如 55666

方式 A:使用 docker-compose.yml

修改配置文件:

yaml 复制代码
services:
  postgres:
    image: postgres:18
    container_name: aitsp-pg-dev
    environment:
      POSTGRES_PASSWORD: Admin@123456
    ports:
      - "55666:5432" # 宿主机端口:容器端口
    volumes:
      - infra_postgres-data:/var/lib/postgresql/18/data
    networks:
      - infra_default

volumes:
  infra_postgres-data:

networks:
  infra_default:

执行命令:

bash 复制代码
docker-compose down
docker-compose up -d
方式 B:直接使用 docker run 命令
bash 复制代码
docker run --name aitsp-pg-dev -e POSTGRES_PASSWORD=Admin@123456 -p 55666:5432 -d postgres:18

客户端连接地址改为:localhost:55666


方案 3:检查 Windows 保留端口范围

确认端口是否被系统保留:

powershell 复制代码
netsh interface ipv4 show excludedportrange protocol=tcp
  • 如果输出结果中包含 55432,说明端口被系统占用,只能通过方案 1 或方案 2 解决。

推荐操作顺序

  1. 先执行 方案 1(重置 WinNAT),重启 Docker 后尝试连接。

  2. 如果仍然失败,直接执行 **方案 2(更换端口)。

(注:文档部分内容可能由 AI 生成)

相关推荐
江畔柳前堤13 小时前
HBM:大语言模型时代的「算力血液」——从内存墙到带宽革命的深度拆解
服务器·人工智能·windows·目标检测·语言模型·自然语言处理·软件工程
IvorySQL14 小时前
PostgreSQL 日报 | JOIN 与外键优化(8 月 9 日)
数据库·postgresql
童槿顏丶18 小时前
docker自动化部署脚本
docker·eureka·自动化
天天进步201518 小时前
UI-TARS 源码解析 #22:二次开发实战:用 UI-TARS 做一个简单的 Windows 自动操作 Agent
windows·ui
啊哈一半醒18 小时前
Windows 虚拟机搭建 CentOS 全过程(2026 最新版 + 踩坑解决)
linux·windows·centos
new_zhou18 小时前
C++ 项目 AI 协作指南(Windows / MSVC 环境)
c++·人工智能·windows
IvorySQL20 小时前
PostgreSQL 日报| PostgreSQL 19 默认 WAL 压缩算法(8 月 8 日)
数据库·postgresql·区块链
切糕师学AI21 小时前
从压缩到查询:PostgreSQL中JSON数据的存储与处理实践
数据库·postgresql·json
GlueNa2SiO321 小时前
06-Docker存储与数据持久化
笔记·学习·docker
爬楼的猪21 小时前
跟着AI Agent学powershell
windows·ai编程