专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏

bitnami/pgpool Docker 镜像 - 轩辕镜像

pgpool
bitnami/pgpool
Bitnami提供的安全pgpool镜像,用于PostgreSQL数据库的连接池管理、负载均衡及高可用中间件。
26 收藏0 次下载activebitnami镜像
🚀专业版镜像服务,面向生产环境设计
中文简介版本下载
🚀专业版镜像服务,面向生产环境设计

Bitnami Pgpool-II 镜像文档

1. 镜像概述和主要用途

1.1 关于Pgpool-II

Pgpool-II 是 PostgreSQL 的代理服务,位于 PostgreSQL 服务器与客户端之间,提供连接池、负载均衡、自动故障转移和复制管理功能。

1.2 Bitnami 镜像特点

Bitnami Pgpool-II 镜像是经过安全加固的容器化版本,基于 Bitnami Secure Images initiative,适用于开发和生产环境,提供最小化***面、CVE 透明度(通过 VEX/KEV)、SBOM 清单和企业级支持选项。

2. 核心功能与特性

2.1 Pgpool-II 核心功能
  • 连接池:缓存客户端连接,减少 PostgreSQL 服务器的连接开销
  • 负载均衡:将读请求分发到多个 PostgreSQL 节点,提高查询性能
  • 自动故障转移:检测主节点故障并自动提升备节点
  • 复制管理:支持 PostgreSQL 流复制配置与监控
  • 读写分离:默认将写操作路由至主节点,读操作分发至备节点
2.2 Bitnami 镜像增强特性
  • 安全加固:基于 Photon Linux 最小化操作系统,减少***面
  • 非 root 运行:容器以非特权用户启动,符合生产环境安全最佳实践
  • 供应链安全:提供 SLSA-3 合规的构建流程、SBOM 清单和漏洞扫描报告
  • 配置灵活性:支持通过环境变量、自定义配置文件和初始化脚本定制部署
  • TLS 加密:内置 TLS 支持,保护客户端与代理间的通信安全

3. 使用场景和适用范围

3.1 典型应用场景
  • PostgreSQL 高可用集群:通过自动故障转移确保服务连续性
  • 读写分离架构:将读请求分发到备节点,提升查询吞吐量
  • 多节点管理:统一管理多个 PostgreSQL 实例,简化客户端连接配置
  • 开发/测试环境:快速部署包含代理层的 PostgreSQL 集群原型
3.2 适用用户
  • 需要构建高可用 PostgreSQL 服务的企业用户
  • 追求性能优化(如读写分离)的应用开发者
  • 关注容器安全与供应链完整性的 DevOps 团队

4. 重要通知:Bitnami 镜像目录变更

自 2025 年 8 月 28 日起,Bitnami 将调整公共镜像目录策略:

  • 镜像迁移:现有所有容器镜像(包括历史版本标签,如 2.50.0、10.6)将从 docker.io/bitnami 迁移至 docker.io/bitnamilegacy 仓库,且不再接收更新
  • 版本支持:免费 tier 将仅提供安全加固的 "latest" 标签镜像(用于开发目的),非加固 Debian 基础镜像将逐步弃用
  • 生产环境建议:生产工作负载推荐使用 Bitnami Secure Images,包含硬化容器、CVE 透明度和长期支持

详情参见 Bitnami Secure Images 公告。

5. 获取镜像

5.1 拉取最新镜像
bash
docker pull bitnami/pgpool:latest
5.2 指定版本拉取

查看 Docker Hub 标签列表 获取可用版本,格式为:

bash
docker pull bitnami/pgpool:[TAG]
5.3 本地构建(可选)
bash
git clone [***]
cd containers/bitnami/pgpool/[VERSION]/[DISTRO]
docker build -t bitnami/pgpool:latest .

6. 快速启动

6.1 单节点快速运行
bash
docker run --name pgpool bitnami/pgpool:latest

默认凭据和配置选项见 环境变量 部分。

7. 部署示例

7.1 使用 Docker 命令行部署 HA 集群
步骤 1:创建网络
bash
docker network create my-network --driver bridge
步骤 2:启动 PostgreSQL 后端节点(使用 repmgr 实现复制)
bash
# 主节点 pg-0
docker run --detach --name pg-0 \
  --network my-network \
  --env REPMGR_PARTNER_NODES=pg-0,pg-1 \
  --env REPMGR_NODE_NAME=pg-0 \
  --env REPMGR_NODE_NETWORK_NAME=pg-0 \
  --env REPMGR_PRIMARY_HOST=pg-0 \
  --env REPMGR_PASSWORD=repmgrpass \
  --env POSTGRESQL_POSTGRES_PASSWORD=adminpassword \
  --env POSTGRESQL_USERNAME=customuser \
  --env POSTGRESQL_PASSWORD=custompassword \
  --env POSTGRESQL_DATABASE=customdatabase \
  bitnami/postgresql-repmgr:latest

# 备节点 pg-1
docker run --detach --name pg-1 \
  --network my-network \
  --env REPMGR_PARTNER_NODES=pg-0,pg-1 \
  --env REPMGR_NODE_NAME=pg-1 \
  --env REPMGR_NODE_NETWORK_NAME=pg-1 \
  --env REPMGR_PRIMARY_HOST=pg-0 \
  --env REPMGR_PASSWORD=repmgrpass \
  --env POSTGRESQL_POSTGRES_PASSWORD=adminpassword \
  --env POSTGRESQL_USERNAME=customuser \
  --env POSTGRESQL_PASSWORD=custompassword \
  --env POSTGRESQL_DATABASE=customdatabase \
  bitnami/postgresql-repmgr:latest
步骤 3:启动 Pgpool-II 代理
bash
docker run --detach --name pgpool \
  --network my-network \
  -p 5432:5432 \
  --env PGPOOL_BACKEND_NODES=0:pg-0:5432,1:pg-1:5432 \
  --env PGPOOL_SR_CHECK_USER=customuser \
  --env PGPOOL_SR_CHECK_PASSWORD=custompassword \
  --env PGPOOL_ENABLE_LDAP=no \
  --env PGPOOL_POSTGRES_USERNAME=postgres \
  --env PGPOOL_POSTGRES_PASSWORD=adminpassword \
  --env PGPOOL_ADMIN_USERNAME=admin \
  --env PGPOOL_ADMIN_PASSWORD=adminpassword \
  bitnami/pgpool:latest
步骤 4:验证连接
bash
docker run -it --rm \
  --network my-network \
  bitnami/postgresql:latest \
  psql -h pgpool -U customuser -d customdatabase
7.2 使用 Docker Compose 部署 HA 集群

创建 docker-compose.yml 文件:

yaml
version: '2'

networks:
  my-network:
    driver: bridge

services:
  pg-0:
    image: bitnami/postgresql-repmgr:latest
    volumes:
      - pg_0_data:/bitnami/postgresql
    environment:
      - POSTGRESQL_POSTGRES_PASSWORD=adminpassword
      - POSTGRESQL_USERNAME=customuser
      - POSTGRESQL_PASSWORD=custompassword
      - POSTGRESQL_DATABASE=customdatabase
      - REPMGR_PASSWORD=repmgrpassword
      - REPMGR_PRIMARY_HOST=pg-0
      - REPMGR_PARTNER_NODES=pg-0,pg-1
      - REPMGR_NODE_NAME=pg-0
      - REPMGR_NODE_NETWORK_NAME=pg-0

  pg-1:
    image: bitnami/postgresql-repmgr:latest
    volumes:
      - pg_1_data:/bitnami/postgresql
    environment:
      - POSTGRESQL_POSTGRES_PASSWORD=adminpassword
      - POSTGRESQL_USERNAME=customuser
      - POSTGRESQL_PASSWORD=custompassword
      - POSTGRESQL_DATABASE=customdatabase
      - REPMGR_PASSWORD=repmgrpassword
      - REPMGR_PRIMARY_HOST=pg-0
      - REPMGR_PARTNER_NODES=pg-0,pg-1
      - REPMGR_NODE_NAME=pg-1
      - REPMGR_NODE_NETWORK_NAME=pg-1

  pgpool:
    image: bitnami/pgpool:latest
    ports:
      - 5432:5432
    environment:
      - PGPOOL_BACKEND_NODES=0:pg-0:5432,1:pg-1:5432
      - PGPOOL_SR_CHECK_USER=customuser
      - PGPOOL_SR_CHECK_PASSWORD=custompassword
      - PGPOOL_ENABLE_LDAP=no
      - PGPOOL_POSTGRES_USERNAME=postgres
      - PGPOOL_POSTGRES_PASSWORD=adminpassword
      - PGPOOL_ADMIN_USERNAME=admin
      - PGPOOL_ADMIN_PASSWORD=adminpassword
    healthcheck:
      test: ["CMD", "/opt/bitnami/scripts/pgpool/healthcheck.sh"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  pg_0_data:
    driver: local
  pg_1_data:
    driver: local

启动集群:

bash
docker-compose up -d

8. 配置说明

8.1 初始化自定义脚本

容器启动时会自动执行 /docker-entrypoint-initdb.d 目录下所有 .sh 脚本。通过挂载卷添加自定义脚本:

yaml
# docker-compose.yml 示例片段
services:
  pgpool:
    image: bitnami/pgpool:latest
    volumes:
      - /path/to/init-scripts:/docker-entrypoint-initdb.d  # 本地脚本目录挂载
8.2 启用 TLS 加密

通过环境变量配置 TLS:

  • PGPOOL_ENABLE_TLS=yes:启用 TLS
  • PGPOOL_TLS_CERT_FILE:证书文件路径
  • PGPOOL_TLS_KEY_FILE:私钥文件路径
  • PGPOOL_TLS_CA_FILE(可选):CA 证书路径(用于客户端认证)

示例 docker run 命令:

bash
docker run \
  -v /path/to/certs:/opt/bitnami/pgpool/certs \
  -e PGPOOL_ENABLE_TLS=yes \
  -e PGPOOL_TLS_CERT_FILE=/opt/bitnami/pgpool/certs/postgres.crt \
  -e PGPOOL_TLS_KEY_FILE=/opt/bitnami/pgpool/certs/postgres.key \
  bitnami/pgpool:latest
8.3 自定义配置文件

通过环境变量指定自定义配置文件覆盖默认配置:

  • PGPOOL_USER_CONF_FILE:自定义主配置文件路径(追加到默认配置)
  • PGPOOL_USER_HBA_FILE:自定义 host-based 认证配置文件路径(覆盖默认 HBA 配置)

示例:

yaml
# docker-compose.yml 示例片段
services:
  pgpool:
    environment:
      - PGPOOL_USER_CONF_FILE=/config/myconf.conf
      - PGPOOL_USER_HBA_FILE=/config/myhbaconf.conf
    volumes:
      - /path/to/myconf.conf:/config/myconf.conf
      - /path/to/myhbaconf.conf:/config/myhbaconf.conf
8.4 重新附加节点

当后端节点恢复后,需手动重新附加到 Pgpool:

  1. 进入 Pgpool 容器:docker exec -it pgpool bash
  2. 连接 Pgpool 管理接口:PGPASSWORD=$PGPOOL_ADMIN_PASSWORD pcp_connect -h localhost -U $PGPOOL_ADMIN_USERNAME
  3. 查看节点状态:show pool_nodes;(获取节点 ID)
  4. 附加节点:pcp_attach_node -h localhost -U $PGPOOL_ADMIN_USERNAME <node_id>

9. 环境变量

9.1 核心配置变量
环境变量名称描述默认值
PGPOOL_PORT_NUMBERPgpool 服务端口5432
PGPOOL_BACKEND_NODES后端 PostgreSQL 节点列表,格式:id:hostname:port[,id:hostname:port]-
PGPOOL_SR_CHECK_USER流复制检查用户-
PGPOOL_SR_CHECK_PASSWORD流复制检查用户密码-
PGPOOL_ADMIN_USERNAMEPCP 管理接口用户名admin
PGPOOL_ADMIN_PASSWORDPCP 管理接口密码-
PGPOOL_ENABLE_LOAD_BALANCING是否启用负载均衡yes
PGPOOL_MAX_POOL最大连接池数量15
9.2 高级配置变量
环境变量名称描述默认值
PGPOOL_ENABLE_TLS是否启用 TLS 加密no
PGPOOL_HEALTH_CHECK_PERIOD健康检查周期(秒)30
PGPOOL_HEALTH_CHECK_TIMEOUT健康检查超时(秒)10
PGPOOL_CONNECT_TIMEOUT连接超时(毫秒)***
PGPOOL_DISABLE_LOAD_BALANCE_ON_WRITE写操作时是否禁用负载均衡transaction

注意:完整环境变量列表请参见 官方文档。

10. Kubernetes 部署

推荐使用 Bitnami Helm Chart 部署到 Kubernetes,详情参见 PostgreSQL HA Chart。

11. 注意事项

  • 生产环境建议:使用 Bitnami Secure Images 并启用 TLS 加密
  • 数据持久化:通过卷挂载持久化 PostgreSQL 数据(如示例中 pg_0_data 卷)
  • 版本迁移:2025 年 8 月 28 日后,历史版本镜像将迁移至 docker.io/bitnamilegacy 仓库,建议定期更新 latest 标签或迁移至 Secure Images
  • 非 root 容器:镜像默认以非 root 用户运行,提升安全性,避免挂载特权路径
查看更多 pgpool 相关镜像 →
bitnami/kubectl logo
bitnami/kubectl
by VMware
认证
Bitnami Secure Image for kubectl 是 Bitnami 公司基于安全最佳实践构建的容器镜像,集成了 Kubernetes 命令行工具 kubectl,旨在为用户提供安全可靠的 Kubernetes 集群管理环境,该镜像经过严格的安全加固,包含漏洞扫描、依赖项验证及合规性检查,确保工具版本稳定且无已知安全风险,支持多种操作系统架构,可直接用于容器化部署或本地环境,帮助开发者和运维人员高效执行集群配置、资源管理及应用部署等操作,简化安全工具集成流程,保障 Kubernetes 管理任务的安全性与便捷性。
1331B+ pulls
上次更新:24 天前
bitnami/postgresql logo
bitnami/postgresql
by VMware
认证
Bitnami PostgreSQL安全镜像是一款专为PostgreSQL数据库设计的预配置、安全强化型容器镜像,集成自动更新的安全补丁、最小化攻击面架构、合规性验证工具及行业最佳安全实践,旨在简化数据库部署流程,同时保障数据存储与访问的安全性、稳定性及可靠性,适用于企业级应用场景下高效、安全的数据库环境搭建。
3691B+ pulls
上次更新:24 天前
bitnami/redis logo
bitnami/redis
by VMware
认证
Bitnami Redis安全镜像是基于开源Redis内存数据存储的预配置安全解决方案,集成了自动漏洞修复、合规性检查及加固配置,支持快速部署且易于维护,适用于作为数据库、缓存或消息代理的场景,为用户提供安全可靠的Redis运行环境。
3611B+ pulls
上次更新:29 天前
bitnami/sealed-secrets-controller logo
bitnami/sealed-secrets-controller
by VMware
认证
Bitnami Sealed Secrets容器镜像,用于在Kubernetes环境中加密Secrets,使其可安全存储于版本控制系统并在集群内解密使用,提供便捷部署与安全保障。
111B+ pulls
上次更新:24 天前
bitnami/mongodb logo
bitnami/mongodb
by VMware
认证
Bitnami MongoDB安全镜像是一款针对MongoDB数据库精心打造的预配置解决方案,集成全面安全加固措施、性能优化组件及跨平台兼容性,旨在帮助用户快速部署稳定可靠的MongoDB环境,其遵循企业级安全标准,包含自动更新机制、访问控制策略及数据加密功能,有效保障数据完整性与系统安全性,同时简化安装配置流程,支持一键部署至各类云平台或本地服务器,适用于从小型项目到大型企业级应用的多样化场景,为开发者和运维人员提供高效、安全、便捷的数据库运行环境。
2661B+ pulls
上次更新:23 天前
bitnami/mariadb logo
bitnami/mariadb
by VMware
认证
Bitnami Secure Image for MariaDB是一款针对MariaDB数据库开发的预配置安全镜像,它集成自动化安全补丁、合规性检查工具及加固配置,可快速在容器、虚拟机或云平台等环境中部署,提供持续更新与维护支持,有效降低部署风险,确保数据库运行的稳定性与安全性,满足企业级应用对数据保护的严格需求。
206500M+ pulls
上次更新:1 个月前

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
bitnami/pgpool
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
提交工单
免费获取在线技术支持请 提交工单,官方QQ群:13763429 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
免费获取在线技术支持请提交工单,官方QQ群: 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.
轩辕镜像 官方专业版 Logo
轩辕镜像轩辕镜像官方专业版
首页个人中心搜索镜像
交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 13763429