自动构建

Bitnami PostgreSQL安全镜像是一款专为PostgreSQL数据库设计的预配置、安全强化型容器镜像,集成自动更新的安全补丁、最小化***面架构、合规性验证工具及行业最佳安全实践,旨在简化数据库部署流程,同时保障数据存储与访问的安全性、稳定性及可靠性,适用于企业级应用场景下高效、安全的数据库环境搭建。

377 次收藏下载次数: 0状态:自动构建维护者:Bitnami Secure Images(VMware Tanzu)仓库类型:镜像最近更新:6 天前
下载命令
点击查看

Bitnami PostgreSQL 软件包

什么是 PostgreSQL?

PostgreSQL(简称 Postgres)是一款开源对象关系型数据库,以可靠性和数据完整性著称。它符合 ACID 标准,支持外键、连接、视图、触发器及存储过程。

[PostgreSQL 概述]
商标说明:本软件列表由 Bitnami 打包。所提及的相关商标分属各自公司所有,使用这些商标不意味着任何关联或背书。

快速启动

console
docker run --name postgresql docker.xuanyuan.run/bitnami/postgresql:latest

警告:此快速设置仅适用于开发环境。建议修改不安全的默认凭据,并参考 配置 部分了解更多安全部署的可用选项。

Bitnami 安全镜像说明

该镜像是由 Bitnami 构建和维护的强化型、最小化 CVE 镜像。Bitnami 安全镜像基于云优化、安全强化的企业级操作系统 [Photon Linux] 。选择 BSI 镜像的理由包括:

  • 提供热门开源软件的强化安全镜像,漏洞数量接近零
  • 结合 VEX 声明、KEV 和 EPSS 评分,对漏洞进行分类和优先级排序
  • 注重合规性,支持 FIPS、STIG 和离线部署选项,包括安全物料清单(SBOM)
  • 通过 in-toto 提供软件供应链来源证明
  • 原生支持主流 Helm 图表

每个镜像均附带有价值的安全元数据,可在 [公共目录] 中查看。注:部分数据需 [订阅 BSI 商业版] 方可获取。

如需基于 Debian Linux 的旧版镜像,可查看 Bitnami Legacy 仓库。

配置

环境变量

可自定义环境变量

名称说明默认值
POSTGRESQL_VOLUME_DIR持久化基础目录/bitnami/postgresql
POSTGRESQL_DATA_DIRPostgreSQL 数据目录${POSTGRESQL_VOLUME_DIR}/data
POSTGRESQL_EXTRA_FLAGSPostgreSQL 初始化额外参数nil
POSTGRESQL_INIT_MAX_TIMEOUT初始化最大等待超时时间(秒)60
POSTGRESQL_PGCTLTIMEOUTpg_ctl 命令最大等待超时时间(秒)60
POSTGRESQL_SHUTDOWN_MODEpg_ctl stop 命令默认模式fast
POSTGRESQL_CLUSTER_APP_NAME复制集群默认应用名称walreceiver
POSTGRESQL_DATABASE默认数据库名称postgres
POSTGRESQL_INITDB_ARGSinitdb 操作可选参数nil
ALLOW_EMPTY_PASSWORD是否允许无密码访问no
POSTGRESQL_INITDB_WAL_DIRinitdb WAL 目录(可选)nil
POSTGRESQL_MASTER_HOST主库主机地址(从库使用)nil
POSTGRESQL_MASTER_PORT_NUMBER主库端口(从库使用)5432
POSTGRESQL_NUM_SYNCHRONOUS_REPLICAS同步复制的从库数量0
POSTGRESQL_SYNCHRONOUS_REPLICAS_MODE同步复制模式(可选值:空、FIRST、ANY)nil
POSTGRESQL_PORT_NUMBER数据库端口5432
POSTGRESQL_ALLOW_REMOTE_CONNECTIONS是否修改 pg_hba 配置允许外部访问yes
POSTGRESQL_REPLICATION_MODE复制模式(可选值:master、slave)master
POSTGRESQL_REPLICATION_USER复制用户名称nil
POSTGRESQL_REPLICATION_USE_PASSFILE是否使用 PGPASSFILE 而非 PGPASSWORDno
POSTGRESQL_REPLICATION_PASSFILE_PATH密码文件存储路径${POSTGRESQL_CONF_DIR}/.pgpass
POSTGRESQL_SR_CHECK是否创建流复制检查用户no
POSTGRESQL_SR_CHECK_USERNAME流复制检查用户名sr_check_user
POSTGRESQL_SR_CHECK_DATABASE流复制检查数据库postgres
POSTGRESQL_SYNCHRONOUS_COMMIT_MODE从库同步提交模式(数量由 POSTGRESQL_NUM_SYNCHRONOUS_REPLICAS 定义)on
POSTGRESQL_FSYNC是否启用 WAL 日志 fsyncon
POSTGRESQL_USERNAME默认用户名postgres
POSTGRESQL_ENABLE_LDAP是否启用 LDAP 认证no
POSTGRESQL_LDAP_URLLDAP 服务器 URL(需 POSTGRESQL_ENABLE_LDAP=yes)nil
POSTGRESQL_LDAP_PREFIXLDAP 前缀(需 POSTGRESQL_ENABLE_LDAP=yes)nil
POSTGRESQL_LDAP_SUFFIXLDAP 后缀(需 POSTGRESQL_ENABLE_LDAP=yes)nil
POSTGRESQL_LDAP_SERVERLDAP 服务器地址(需 POSTGRESQL_ENABLE_LDAP=yes)nil
POSTGRESQL_LDAP_PORTLDAP 端口(需 POSTGRESQL_ENABLE_LDAP=yes)nil
POSTGRESQL_LDAP_SCHEMELDAP 协议(需 POSTGRESQL_ENABLE_LDAP=yes)nil
POSTGRESQL_LDAP_TLSLDAP TLS 设置(需 POSTGRESQL_ENABLE_LDAP=yes)nil
POSTGRESQL_LDAP_BASE_DNLDAP 基础 DN(需 POSTGRESQL_ENABLE_LDAP=yes)nil
POSTGRESQL_LDAP_BIND_DNLDAP 绑定 DN(需 POSTGRESQL_ENABLE_LDAP=yes)nil
POSTGRESQL_LDAP_BIND_PASSWORDLDAP 绑定密码(需 POSTGRESQL_ENABLE_LDAP=yes)nil
POSTGRESQL_LDAP_SEARCH_ATTRLDAP 搜索属性(需 POSTGRESQL_ENABLE_LDAP=yes)nil
POSTGRESQL_LDAP_SEARCH_FILTERLDAP 搜索过滤器(需 POSTGRESQL_ENABLE_LDAP=yes)nil
POSTGRESQL_INITSCRIPTS_USERNAME/docker-entrypoint.initdb 中 psql 脚本的用户名$POSTGRESQL_USERNAME
POSTGRESQL_PASSWORD默认用户密码nil
POSTGRESQL_POSTGRES_PASSWORDpostgres 用户密码nil
POSTGRESQL_REPLICATION_PASSWORD复制用户密码nil
POSTGRESQL_SR_CHECK_PASSWORD流复制检查用户密码nil
POSTGRESQL_INITSCRIPTS_PASSWORD初始化脚本用户密码$POSTGRESQL_PASSWORD
POSTGRESQL_ENABLE_TLS是否启用 TLS 加密no
POSTGRESQL_TLS_CERT_FILETLS 证书文件路径nil
POSTGRESQL_TLS_KEY_FILETLS 密钥文件路径nil
POSTGRESQL_TLS_CA_FILETLS CA 证书文件路径nil
POSTGRESQL_TLS_CRL_FILE证书吊销列表文件路径nil
POSTGRESQL_TLS_PREFER_SERVER_CIPHERS是否优先使用服务器 TLS 密码套件yes
POSTGRESQL_SHARED_PRELOAD_LIBRARIES初始化时预加载的库列表pgaudit
POSTGRESQL_PGAUDIT_LOGpgaudit 日志记录动作(逗号分隔列表)nil
POSTGRESQL_PGAUDIT_LOG_CATALOG是否启用 pgaudit 目录日志(pgaudit.log_catalog 设置)nil
POSTGRESQL_PGAUDIT_LOG_PARAMETER是否启用 pgaudit 参数日志(pgaudit.log_parameter 设置)nil
POSTGRESQL_LOG_CONNECTIONS是否记录用户连接日志nil
POSTGRESQL_LOG_DISCONNECTIONS是否记录用户断开连接日志nil
POSTGRESQL_LOG_HOSTNAME是否记录客户端主机名nil
POSTGRESQL_CLIENT_MIN_MESSAGES客户端错误日志级别error
POSTGRESQL_LOG_LINE_PREFIX日志行前缀格式nil
POSTGRESQL_LOG_TIMEZONE日志时区nil
POSTGRESQL_TIMEZONE数据库时区nil
POSTGRESQL_MAX_CONNECTIONS最大连接数nil
POSTGRESQL_TCP_KEEPALIVES_IDLETCP 保活空闲时间nil
POSTGRESQL_TCP_KEEPALIVES_INTERVALTCP 保活间隔时间nil
POSTGRESQL_TCP_KEEPALIVES_COUNTTCP 保活探测次数nil
POSTGRESQL_STATEMENT_TIMEOUTSQL 语句超时时间nil
POSTGRESQL_PGHBA_REMOVE_FILTERS需移除的 pg_hba.conf 行内容(逗号分隔,如:md5, local)nil
POSTGRESQL_USERNAME_CONNECTION_LIMIT默认用户连接数限制nil
POSTGRESQL_POSTGRES_CONNECTION_LIMITpostgres 用户连接数限制nil
POSTGRESQL_WAL_LEVELWAL 日志级别replica
POSTGRESQL_DEFAULT_TOAST_COMPRESSION默认 TOAST 压缩方式nil
POSTGRESQL_PASSWORD_ENCRYPTION密码加密方式nil
POSTGRESQL_DEFAULT_TRANSACTION_ISOLATION默认事务隔离级别nil
POSTGRESQL_REPLICATION_NODES重写 postgresql.conf 中的 synchronous_standby_names(需设置 REPMGR_NODE_NAME 时使用)nil
POSTGRESQL_PERFORM_RESTORE是否保留 recovery.signal 文件以启用原生恢复(如通过 wal-g)no
POSTGRESQL_AUTOCTL_CONF_DIRpg_autoctl 命令配置目录${POSTGRESQL_AUTOCTL_VOLUME_DIR}/.config
POSTGRESQL_AUTOCTL_MODEpgAutoFailover 节点类型(可选值:monitor、postgres)postgres
POSTGRESQL_AUTOCTL_MONITOR_HOST监控组件主机名monitor
POSTGRESQL_AUTOCTL_HOSTNAMEPostgreSQL 服务访问主机名$(hostname --fqdn)

只读环境变量

名称说明值
POSTGRESQL_BASE_DIRPostgreSQL 安装目录/opt/bitnami/postgresql
POSTGRESQL_DEFAULT_CONF_DIR默认配置目录$POSTGRESQL_BASE_DIR/conf.default
POSTGRESQL_CONF_DIR配置目录$POSTGRESQL_BASE_DIR/conf
POSTGRESQL_MOUNTED_CONF_DIR挂载的配置目录$POSTGRESQL_VOLUME_DIR/conf
POSTGRESQL_CONF_FILE主配置文件$POSTGRESQL_CONF_DIR/postgresql.conf
POSTGRESQL_PGHBA_FILEpg_hba 配置文件$POSTGRESQL_CONF_DIR/pg_hba.conf
POSTGRESQL_RECOVERY_FILE恢复配置文件$POSTGRESQL_DATA_DIR/recovery.conf
POSTGRESQL_LOG_DIR日志目录$POSTGRESQL_BASE_DIR/logs
POSTGRESQL_LOG_FILE日志文件$POSTGRESQL_LOG_DIR/postgresql.log
POSTGRESQL_TMP_DIR临时目录$POSTGRESQL_BASE_DIR/tmp
POSTGRESQL_PID_FILEPID 文件$POSTGRESQL_TMP_DIR/postgresql.pid
POSTGRESQL_BIN_DIR可执行文件目录$POSTGRESQL_BASE_DIR/bin
POSTGRESQL_INITSCRIPTS_DIR初始化脚本目录/docker-entrypoint-initdb.d
POSTGRESQL_PREINITSCRIPTS_DIR预初始化脚本目录/docker-entrypoint-preinitdb.d
POSTGRESQL_DAEMON_USER系统用户postgres
POSTGRESQL_DAEMON_GROUP系统用户组postgres
POSTGRESQL_USE_CUSTOM_PGHBA_INITIALIZATION是否使用挂载的自定义 pg_hba.conf 初始化数据库no
POSTGRESQL_AUTOCTL_VOLUME_DIRpg_autoctl 主目录${POSTGRESQL_VOLUME_DIR}/pgautoctl
POSTGRESQL_PGBACKREST_VOLUME_DIRpgbackrest 主目录${POSTGRESQL_VOLUME_DIR}/pgbackrest
POSTGRESQL_PGBACKREST_LOGS_DIRpgbackrest 日志目录${POSTGRESQL_PGBACKREST_VOLUME_DIR}/logs
POSTGRESQL_PGBACKREST_BACKUPS_DIRpgbackrest 备份目录${POSTGRESQL_PGBACKREST_VOLUME_DIR}/backups
POSTGRESQL_PGBACKREST_SPOOL_DIRpgbackrest 缓存目录${POSTGRESQL_PGBACKREST_VOLUME_DIR}/spool
POSTGRESQL_PGBACKREST_CONF_FILEpgbackrest 配置文件${POSTGRESQL_DATA_DIR}/pgbackrest.conf
POSTGRESQL_FIRST_BOOT首次启动标记(repmgr 需用)yes
NSS_WRAPPER_LIBNSS 包装库路径(repmgr 需用)/opt/bitnami/common/lib/libnss_wrapper.so

bitnami/postgresql 国内 Docker 镜像拉取说明

在国内网络环境下,直接使用 docker pull 访问 Docker Hub 官方仓库时,较常遇到连接超时、TLS 握手失败或 registry 响应缓慢等情况。这类问题多与跨境链路质量、运营商策略及客户端 DNS 解析有关,并非单个镜像本身异常。

轩辕镜像提供两种常用加速方式:一是使用公共加速域名 docker.xuanyuan.run 拉取(可参考 登录认证方式);二是在控制台配置 专属域名拉取,将拉取命令中的 registry 前缀替换为分配的专属域名,通常能提升成功率与稳定性。

以 bitnami/postgresql 为例,加速拉取命令格式为 docker pull docker.xuanyuan.run/bitnami/postgresql:<标签>,请将 <标签> 替换为具体版本。下方「镜像拉取方式」区块提供与本文一致的命令示例,可直接复制使用。

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 postgresql 镜像标签

docker pull docker.xuanyuan.run/bitnami/postgresql:<标签>

DockerHub 原生拉取命令

docker pull bitnami/postgresql:<标签>
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载在线技术支持专业版保障服务可用付费会员免广告