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

如何修改postgres:14.1-alpine容器端口,实现localhost:9906访问?

解决PostgreSQL容器端口映射后无法访问的问题

容器内PostgreSQL监听5432是完全正常的——端口映射的逻辑就是宿主机端口:容器内部端口,你的9906是宿主机侧的入口,负责转发到容器内的5432。访问无响应大概率是以下几个配置环节没做好:

1. 确认docker-compose.yml的端口配置格式正确

先检查你的docker-compose.yml里的ports配置是否符合标准格式,必须放在postgres服务的配置块下:

version: '3.8'
services:
  postgres:
    image: postgres:14.1-alpine
    ports:
      - "9906:5432"  # 注意引号,宿主机端口在前,容器端口在后
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: your_db_name

2. 让PostgreSQL监听容器内所有IP

默认PostgreSQL可能只绑定127.0.0.1(容器内部的localhost),这样宿主机的端口映射无法穿透进去。你需要修改listen_addresses为*,有两种简单实现方式:

方式一:用command参数直接覆盖配置

在docker-compose的postgres服务里添加command字段:

services:
  postgres:
    # ... 其他配置
    command: postgres -c listen_addresses='*'

方式二:挂载自定义配置文件(适合复杂场景)

  1. 先从容器里拷贝默认配置文件到宿主机:
docker run --rm postgres:14.1-alpine cat /var/lib/postgresql/data/postgresql.conf > ./postgresql.conf
docker run --rm postgres:14.1-alpine cat /var/lib/postgresql/data/pg_hba.conf > ./pg_hba.conf
  1. 修改postgresql.conf里的listen_addresses参数为*
  2. 修改pg_hba.conf,在文件末尾添加一行允许远程连接的规则:
host    all             all             0.0.0.0/0               scram-sha-256
  1. 在docker-compose里挂载这两个配置文件:
services:
  postgres:
    # ... 其他配置
    volumes:
      - ./postgresql.conf:/var/lib/postgresql/data/postgresql.conf
      - ./pg_hba.conf:/var/lib/postgresql/data/pg_hba.conf
      - postgres_data:/var/lib/postgresql/data  # 保留数据卷避免数据丢失
volumes:
  postgres_data:

3. 检查宿主机侧的端口占用和防火墙

  • 用lsof -i :9906或netstat -tulpn | grep 9906检查9906端口是否被其他进程占用
  • 检查宿主机防火墙是否开放了9906端口:
    • Ubuntu/Debian:临时开放测试ufw allow 9906
    • CentOS/RHEL:firewall-cmd --add-port=9906/tcp --permanent && firewall-cmd --reload

验证方法

  • 启动容器后,用docker ps查看PORTS列,确认显示0.0.0.0:9906->5432/tcp
  • 用telnet localhost 9906测试端口连通性,或直接用psql验证:
psql postgresql://postgres:postgres@localhost:9906

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 17:22:16