本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

docker-pgbackrest是将pgBackRest打包到Docker容器中的镜像,适用于不愿在专用仓库主机或CI/CD系统中通过yum、apt等方式安装pgBackRest系统包的场景。只需运行Docker容器即可使用pgBackRest,同时PostgreSQL服务器端需按pgBackRest文档配置。
仓库包含pgBackRest最新5个版本的信息,如需旧版本可手动构建。同时提供支持Greenplum的pgBackRest分支版本(基于pgbackrest/pull/1833),包含最新3个版本,旧版本同样支持手动构建。
2.56.0、latest2.56.0-alpine2.55.12.55.1-alpine2.55.02.55.0-alpine2.54.22.54.2-alpine2.54.12.54.1-alpine2.52-gpdb2.52-gpdb-alpine2.50-gpdb2.50-gpdb-alpine2.47-gpdb2.47-gpdb-alpinebuilder容器中从源码构建.backrest-build从源码构建pgbackrest命令| 环境变量 | 描述 | 默认值 |
|---|---|---|
TZ | 容器时区 | Etc/UTC |
BACKREST_USER | 执行命令的非root用户名 | pgbackrest |
BACKREST_UID | BACKREST_USER的UID | 2001 |
BACKREST_GROUP | BACKREST_USER的组名 | pgbackrest |
BACKREST_GID | BACKREST_USER的GID | 2001 |
BACKREST_HOST_TYPE | 仓库主机协议类型 | ssh(可选值:ssh、tls) |
BACKREST_TLS_WAIT | BACKREST_HOST_TYPE=tls时等待TLS服务器启动的秒数 | 15 |
BACKREST_TLS_SERVER | 是否以pgBackRest TLS服务器模式启动容器 | disable(可选值:disable、enable) |
根据需要的版本标签替换tag。
docker pull woblerr/pgbackrest:tag
Alpine版本:
docker pull woblerr/pgbackrest:tag-alpine
docker pull ghcr.io/woblerr/pgbackrest:tag
Alpine版本:
docker pull ghcr.io/woblerr/pgbackrest:tag-alpine
使用前需挂载必要的目录或文件到容器中。
docker run --rm pgbackrest:51 pgbackrest help
docker run --rm -it pgbackrest:2.56.0 bash pgbackrest@cac1f58b56f2:/$ pgbackrest version pgBackRest 2.56.0
假设主机用户/组为pgbackrest:pgbackrest(UID/GID 1001:1001),备份存储在本地用户目录下。
docker run --rm \ -e BACKREST_UID=1001 \ -e BACKREST_GID=1001 \ -v ~/.ssh/id_rsa:/home/pgbackrest/.ssh/id_rsa \ -v /etc/pgbackrest:/etc/pgbackrest \ -v /var/lib/pgbackrest:/var/lib/pgbackrest \ pgbackrest:2.56.0 \ pgbackrest backup --stanza demo --type full --log-level-console info
旧版本pgBackRest:
docker run --rm \ -e BACKREST_UID=1001 \ -e BACKREST_GID=1001 \ -v ~/.ssh/id_rsa:/home/pgbackrest/.ssh/id_rsa \ -v /etc/pgbackrest:/etc/pgbackrest \ -v /var/lib/pgbackrest:/var/lib/pgbackrest \ pgbackrest:2.30 \ pgbackrest backup --stanza demo-old --type full --log-level-console info
防止同一stanza并发执行多个备份进程:
docker run --rm \ -e BACKREST_UID=1001 \ -e BACKREST_GID=1001 \ -v ~/.ssh/id_rsa:/home/pgbackrest/.ssh/id_rsa \ -v /etc/pgbackrest:/etc/pgbackrest \ -v /var/lib/pgbackrest:/var/lib/pgbackrest \ -v /tmp/pgbackrest:/tmp/pgbackrest \ pgbackrest:2.56.0 \ pgbackrest backup --stanza demo --type full --log-level-console info
仅支持pgBackRest version >= 2.37,两种使用模式:
1. 以TLS服务器模式启动容器
需设置BACKREST_TLS_SERVER=enable,BACKREST_HOST_TYPE和BACKREST_TLS_WAIT不影响此模式:
docker run -d \ -e BACKREST_UID=1001 \ -e BACKREST_GID=1001 \ -e BACKREST_TLS_SERVER=enable \ -v /etc/pgbackrest:/etc/pgbackrest \ -v /var/lib/pgbackrest:/var/lib/pgbackrest \ -p 8432:8432 \ --name backrest_server \ pgbackrest:2.56.0
2. 后台启动TLS服务器并通过TLS执行pgBackRest
需设置BACKREST_HOST_TYPE=tls,BACKREST_TLS_WAIT可调整等待时间(默认15秒):
docker run --rm \ -e BACKREST_UID=1001 \ -e BACKREST_GID=1001 \ -e BACKREST_HOST_TYPE=tls \ -v /etc/pgbackrest:/etc/pgbackrest \ -v /var/lib/pgbackrest:/var/lib/pgbackrest \ pgbackrest:2.56.0 \ pgbackrest backup --stanza demo --type full --log-level-console info
PostgreSQL以postgres:postgres(UID/GID 1001:1001)运行,数据路径/var/lib/postgresql/12/main,备份路径/var/lib/pgbackrest:
docker run --rm \ -e BACKREST_USER=postgres \ -e BACKREST_UID=1001 \ -e BACKREST_GROUP=postgres \ -e BACKREST_GID=1001 \ -e TZ=America/Chicago \ -v /etc/pgbackrest/pgbackrest.conf:/etc/pgbackrest/pgbackrest.conf \ -v /var/lib/postgresql/12/main:/var/lib/postgresql/12/main \ -v /var/lib/pgbackrest:/var/lib/pgbackrest \ -v /var/run/postgresql/.s.PGSQL.5432:/var/run/postgresql/.s.PGSQL.5432 \ pgbackrest:2.56.0 \ pgbackrest backup --stanza demo --type full --log-level-console info
远程PostgreSQL通过TLS通信,备份和WAL文件路径/var/lib/pgbackrest:
启动TLS服务器容器(供远程PostgreSQL归档WAL文件):
docker run -d \ -e BACKREST_UID=1001 \ -e BACKREST_GID=1001 \ -e BACKREST_TLS_SERVER=enable \ -v /etc/pgbackrest/pgbackrest.conf:/etc/pgbackrest/pgbackrest.conf \ -v /etc/pgbackrest/cert:/etc/pgbackrest/cert \ -v /var/lib/pgbackrest:/var/lib/pgbackrest \ -p 8432:8432 \ --name backrest_server \ pgbackrest:2.56.0
执行备份:
docker run --rm \ -e BACKREST_UID=1001 \ -e BACKREST_GID=1001 \ -e BACKREST_HOST_TYPE=tls \ -v /etc/pgbackrest/pgbackrest.conf:/etc/pgbackrest/pgbackrest.conf \ -v /etc/pgbackrest/cert:/etc/pgbackrest/cert \ -v /var/lib/pgbackrest:/var/lib/pgbackrest \ pgbackrest:2.56.0 \ pgbackrest backup --stanza demo --type full --log-level-console info
make build_version TAG=2.56.0
Alpine版本:
make build_version_alpine TAG=2.56.0
或直接使用docker命令:
docker build -f Dockerfile --build-arg BACKREST_VERSION=2.56.0 --build-arg BACKREST_COMPLETION_VERSION=v0.10 -t pgbackrest:2.56.0 .
Alpine版本:
docker build -f Dockerfile.alpine --build-arg BACKREST_VERSION=2.56.0 --build-arg BACKREST_COMPLETION_VERSION=v0.10 -t pgbackrest:2.56.0-alpine .
pgBackRest v2.51+使用meson构建系统,旧版本需使用Dockerfile_make或Dockerfile_make.alpine:
make build_version TAG=2.49
Alpine版本:
make build_version_alpine TAG=2.49
或直接使用docker命令:
docker build -f Dockerfile_make --build-arg BACKREST_VERSION=2.49 --build-arg BACKREST_COMPLETION_VERSION=v0.10 -t pgbackrest:2.49 .
Alpine版本:
docker build -f Dockerfile_make.alpine --build-arg BACKREST_VERSION=2.49 --build-arg BACKREST_COMPLETION_VERSION=v0.10 -t pgbackrest:2.49-alpine .
Docker Hub:
docker pull woblerr/pgbackrest:tag-gpdb
Alpine版本:
docker pull woblerr/pgbackrest:tag-gpdb-alpine
GitHub Registry:
docker pull ghcr.io/woblerr/pgbackrest:tag-gpdb
Alpine版本:
docker pull ghcr.io/woblerr/pgbackrest:tag-gpdb-alpine
docker run --rm pgbackrest:2.52-gpdb pgbackrest help
执行端到端测试:
make test-e2e
测试详情参见测试说明。
免费版仅支持 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