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

Bitnami PostgreSQL 16.2.0 Docker镜像认证失败问题求助

解决Bitnami PostgreSQL 16.2.0 Docker镜像连接认证问题

问题原因

Bitnami PostgreSQL 16.x版本调整了初始化检测逻辑:当容器启动时,若数据目录(默认/bitnami/postgresql/data/)中存在pg_hba.conf等配置文件,镜像会判定数据库已完成初始化,直接跳过创建自定义用户、设置postgres密码的核心初始化步骤。这就是挂载自定义pg_hba.conf到数据目录后,出现user1不存在、postgres无密码的原因。而15.4版本未启用该检测逻辑,所以相同配置可正常运行。

解决方案

方案1:正确挂载pg_hba.conf到配置目录

Bitnami镜像的配置文件默认存放在/opt/bitnami/postgresql/conf/,将自定义pg_hba.conf挂载到这个路径,既可以使用自定义配置,又不会触发初始化跳过逻辑。

执行以下命令启动容器(注意替换自定义pg_hba.conf的本地路径):

docker run -d \
  --name RR15 \
  -e POSTGRESQL_USERNAME=user1 \
  -e POSTGRESQL_PASSWORD=pwduser1 \
  -e POSTGRESQL_DATABASE=postgres \
  -e POSTGRESQL_POSTGRES_PASSWORD=postgres \
  -v ~/containers/postgres16.2/data:/bitnami/postgresql/data \
  -v /path/to/your/custom/pg_hba.conf:/opt/bitnami/postgresql/conf/pg_hba.conf \
  bitnami/postgresql:16.2.0

方案2:先完成初始化再替换pg_hba.conf

如果需要将pg_hba.conf放在数据目录中,可分两步操作:

  1. 先不挂载自定义pg_hba.conf,启动容器完成初始化:
docker run -d \
  --name RR15 \
  -e POSTGRESQL_USERNAME=user1 \
  -e POSTGRESQL_PASSWORD=pwduser1 \
  -e POSTGRESQL_DATABASE=postgres \
  -e POSTGRESQL_POSTGRES_PASSWORD=postgres \
  -v ~/containers/postgres16.2/data:/bitnami/postgresql/data \
  bitnami/postgresql:16.2.0
  1. 容器启动正常后,复制自定义pg_hba.conf到数据目录,再重启容器:
# 复制自定义配置到容器数据目录
docker cp /path/to/your/custom/pg_hba.conf RR15:/bitnami/postgresql/data/pg_hba.conf
# 重启容器使配置生效
docker restart RR15

验证步骤

  1. 查看容器日志,确认初始化步骤已执行:
docker logs RR15 | grep -E "Creating user|Setting password"

应看到类似Creating user 'user1'、Setting password for 'postgres'的日志。
2. 使用user1连接数据库:

psql -h localhost -U user1 -d postgres

输入密码pwduser1即可正常连接。
3. 使用postgres用户连接:

psql -h localhost -U postgres -d postgres

输入密码postgres即可正常连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 10:31:28