
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
docker-pgbackrest是将pgBackRest打包到Docker容器中的镜像,适用于不愿在专用仓库主机或CI/CD系统中通过yum、apt等方式安装pgBackRest系统包的场景。只需运行Docker容器即可使用pgBackRest,同时PostgreSQL服务器端需按pgBackRest文档配置。
仓库包含pgBackRest最新5个版本的信息,如需旧版本可手动构建。同时提供支持Greenplum的pgBackRest分支版本(基于https://github.com/pgbackrest/pgbackrest/pull/1833%EF%BC%89%EF%BC%8C%E5%8C%85%E5%90%AB%E6%9C%80%E6%96%B03%E4%B8%AA%E7%89%88%E6%9C%AC%EF%BC%8C%E6%97%A7%E7%89%88%E6%9C%AC%E5%90%8C%E6%A0%B7%E6%94%AF%E6%8C%81%E6%89%8B%E5%8A%A8%E6%9E%84%E5%BB%BA%E3%80%82
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从源码构建| 环境变量 | 描述 | 默认值 |
|---|---|---|
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。
bashdocker pull woblerr/pgbackrest:tag
Alpine版本:
bashdocker pull woblerr/pgbackrest:tag-alpine
bashdocker pull ghcr.io/woblerr/pgbackrest:tag
Alpine版本:
bashdocker pull ghcr.io/woblerr/pgbackrest:tag-alpine
使用前需挂载必要的目录或文件到容器中。
bashdocker run --rm pgbackrest:51 pgbackrest help
bashdocker run --rm -it pgbackrest:2.56.0 bash pgbackrest@cac1f58b56f2:/$ pgbackrest version pgBackRest 2.56.0
假设主机用户/组为pgbackrest:pgbackrest(UID/GID 1001:1001),备份存储在本地用户目录下。
使用SSH协议
bashdocker 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:
bashdocker 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并发执行多个备份进程:
bashdocker 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
使用TLS协议
仅支持pgBackRest version >= 2.37,两种使用模式:
1. 以TLS服务器模式启动容器
需设置BACKREST_TLS_SERVER=enable,BACKREST_HOST_TYPE和BACKREST_TLS_WAIT不影响此模式:
bashdocker 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秒):
bashdocker 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:
bashdocker 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文件):
bashdocker 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
执行备份:
bashdocker 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
bashmake build_version TAG=2.56.0
Alpine版本:
bashmake build_version_alpine TAG=2.56.0
或直接使用docker命令:
bashdocker build -f Dockerfile --build-arg BACKREST_VERSION=2.56.0 --build-arg BACKREST_COMPLETION_VERSION=v0.10 -t pgbackrest:2.56.0 .
Alpine版本:
bashdocker 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:
bashmake build_version TAG=2.49
Alpine版本:
bashmake build_version_alpine TAG=2.49
或直接使用docker命令:
bashdocker build -f Dockerfile_make --build-arg BACKREST_VERSION=2.49 --build-arg BACKREST_COMPLETION_VERSION=v0.10 -t pgbackrest:2.49 .
Alpine版本:
bashdocker 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:
bashdocker pull woblerr/pgbackrest:tag-gpdb
Alpine版本:
bashdocker pull woblerr/pgbackrest:tag-gpdb-alpine
GitHub Registry:
bashdocker pull ghcr.io/woblerr/pgbackrest:tag-gpdb
Alpine版本:
bashdocker pull ghcr.io/woblerr/pgbackrest:tag-gpdb-alpine
bashdocker run --rm pgbackrest:2.52-gpdb pgbackrest help
执行端到端测试:
bashmake test-e2e
测试详情参见https://github.com/woblerr/docker-pgbackrest/blob/master/e2e_tests/README.md%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务