本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Pgpool-II 是 PostgreSQL 的代理服务,位于 PostgreSQL 服务器与客户端之间,提供连接池、负载均衡、自动故障转移和复制管理功能。
Bitnami Pgpool-II 镜像是经过安全加固的容器化版本,基于 Bitnami Secure Images initiative,适用于开发和生产环境,提供最小化攻击面、CVE 透明度(通过 VEX/KEV)、SBOM 清单和企业级支持选项。
自 2025 年 8 月 28 日起,Bitnami 将调整公共镜像目录策略:
docker.io/bitnami 迁移至 docker.io/bitnamilegacy 仓库,且不再接收更新详情参见 Bitnami Secure Images 公告。
docker pull bitnami/pgpool:latest
查看 Docker Hub 标签列表 获取可用版本,格式为:
docker pull bitnami/pgpool:[TAG]
git clone [***] cd containers/bitnami/pgpool/[VERSION]/[DISTRO] docker build -t bitnami/pgpool:latest .
docker run --name pgpool bitnami/pgpool:latest
默认凭据和配置选项见 环境变量 部分。
docker network create my-network --driver bridge
# 主节点 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
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
docker run -it --rm \ --network my-network \ bitnami/postgresql:latest \ psql -h pgpool -U customuser -d customdatabase
创建 docker-compose.yml 文件:
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
启动集群:
docker-compose up -d
容器启动时会自动执行 /docker-entrypoint-initdb.d 目录下所有 .sh 脚本。通过挂载卷添加自定义脚本:
# docker-compose.yml 示例片段 services: pgpool: image: bitnami/pgpool:latest volumes: - /path/to/init-scripts:/docker-entrypoint-initdb.d # 本地脚本目录挂载
通过环境变量配置 TLS:
PGPOOL_ENABLE_TLS=yes:启用 TLSPGPOOL_TLS_CERT_FILE:证书文件路径PGPOOL_TLS_KEY_FILE:私钥文件路径PGPOOL_TLS_CA_FILE(可选):CA 证书路径(用于客户端认证)示例 docker run 命令:
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
通过环境变量指定自定义配置文件覆盖默认配置:
PGPOOL_USER_CONF_FILE:自定义主配置文件路径(追加到默认配置)PGPOOL_USER_HBA_FILE:自定义 host-based 认证配置文件路径(覆盖默认 HBA 配置)示例:
# 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
当后端节点恢复后,需手动重新附加到 Pgpool:
docker exec -it pgpool bashPGPASSWORD=$PGPOOL_ADMIN_PASSWORD pcp_connect -h localhost -U $PGPOOL_ADMIN_USERNAMEshow pool_nodes;(获取节点 ID)pcp_attach_node -h localhost -U $PGPOOL_ADMIN_USERNAME <node_id>| 环境变量名称 | 描述 | 默认值 |
|---|---|---|
PGPOOL_PORT_NUMBER | Pgpool 服务端口 | 5432 |
PGPOOL_BACKEND_NODES | 后端 PostgreSQL 节点列表,格式:id:hostname:port[,id:hostname:port] | - |
PGPOOL_SR_CHECK_USER | 流复制检查用户 | - |
PGPOOL_SR_CHECK_PASSWORD | 流复制检查用户密码 | - |
PGPOOL_ADMIN_USERNAME | PCP 管理接口用户名 | admin |
PGPOOL_ADMIN_PASSWORD | PCP 管理接口密码 | - |
PGPOOL_ENABLE_LOAD_BALANCING | 是否启用负载均衡 | yes |
PGPOOL_MAX_POOL | 最大连接池数量 | 15 |
| 环境变量名称 | 描述 | 默认值 |
|---|---|---|
PGPOOL_ENABLE_TLS | 是否启用 TLS 加密 | no |
PGPOOL_HEALTH_CHECK_PERIOD | 健康检查周期(秒) | 30 |
PGPOOL_HEALTH_CHECK_TIMEOUT | 健康检查超时(秒) | 10 |
PGPOOL_CONNECT_TIMEOUT | 连接超时(毫秒) | 10000 |
PGPOOL_DISABLE_LOAD_BALANCE_ON_WRITE | 写操作时是否禁用负载均衡 | transaction |
注意:完整环境变量列表请参见 官方文档。
推荐使用 Bitnami Helm Chart 部署到 Kubernetes,详情参见 PostgreSQL HA Chart。
pg_0_data 卷)docker.io/bitnamilegacy 仓库,建议定期更新 latest 标签或迁移至 Secure Images免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429