
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
用于在PostgreSQL数据库与S3存储之间进行备份和恢复操作,支持定期备份和加密功能。可通过环境变量配置实现灵活的备份策略,适用于需要将PostgreSQL数据安全存储到S3或从S3恢复的场景。
SCHEDULE环境变量)ENCRYPTION_PASSWORD)pigz替代gzip)DELETE_OLDER_THAN)备份操作
sh$ docker run -e S3_ACCESS_KEY_ID=密钥 -e S3_SECRET_ACCESS_KEY=密钥 -e S3_BUCKET=我的桶 -e S3_PREFIX=backup -e POSTGRES_DATABASE=数据库名 -e POSTGRES_USER=用户名 -e POSTGRES_PASSWORD=密码 -e POSTGRES_HOST=localhost itbm/postgres-backup-s3
恢复操作
sh$ docker run -e S3_ACCESS_KEY_ID=密钥 -e S3_SECRET_ACCESS_KEY=密钥 -e S3_BUCKET=我的桶 -e BACKUP_FILE=backup/数据库名_0000-00-00T00:00:00Z.sql.gz -e POSTGRES_DATABASE=数据库名 -e POSTGRES_USER=用户名 -e POSTGRES_PASSWORD=密码 -e POSTGRES_HOST=localhost -e CREATE_DATABASE=yes itbm/postgres-backup-s3
注意:当提供BACKUP_FILE环境变量时,容器会自动执行恢复过程而非备份。
yamlapiVersion: v1 kind: Namespace metadata: name: backup --- apiVersion: apps/v1 kind: Deployment metadata: name: postgresql namespace: backup spec: selector: matchLabels: app: postgresql strategy: type: Recreate template: metadata: labels: app: postgresql spec: containers: - name: postgresql image: itbm/postgresql-backup-s3 imagePullPolicy: Always env: - name: POSTGRES_DATABASE value: "" - name: POSTGRES_HOST value: "" - name: POSTGRES_PORT value: "" - name: POSTGRES_PASSWORD value: "" - name: POSTGRES_USER value: "" - name: S3_ACCESS_KEY_ID value: "" - name: S3_SECRET_ACCESS_KEY value: "" - name: S3_BUCKET value: "" - name: S3_ENDPOINT value: "" - name: S3_PREFIX value: "" - name: SCHEDULE value: ""
| 变量名 | 默认值 | 是否必填 | 描述 |
|---|---|---|---|
| POSTGRES_DATABASE | 是 | 需备份/恢复的数据库名,或使用'all'表示备份/恢复所有数据库 | |
| POSTGRES_HOST | 是 | PostgreSQL数据库主机地址 | |
| POSTGRES_PORT | 5432 | 否 | PostgreSQL数据库端口 |
| POSTGRES_USER | 是 | PostgreSQL数据库用户名 | |
| POSTGRES_PASSWORD | 是 | PostgreSQL数据库密码 | |
| POSTGRES_EXTRA_OPTS | 否 | PostgreSQL额外选项参数 | |
| S3_ACCESS_KEY_ID | 是 | AWS访问密钥 | |
| S3_SECRET_ACCESS_KEY | 是 | AWS密钥 | |
| S3_BUCKET | 是 | AWS S3桶路径 | |
| S3_PREFIX | backup | 否 | S3桶中的路径前缀 |
| S3_REGION | us-west-1 | 否 | AWS S3桶所在区域 |
| S3_ENDPOINT | 否 | AWS S3兼容API的端点URL(如minio服务器) | |
| S3_S3V4 | no | 否 | 设置为'yes'启用AWS Signature Version 4,minio服务器需启用此选项 |
| SCHEDULE | 否 | 备份调度时间,格式参考下方说明 | |
| ENCRYPTION_PASSWORD | 否 | 用于加密/解密备份文件的密码 | |
| DELETE_OLDER_THAN | 否 | 删除指定时间前的旧备份,格式及警告见下方说明 | |
| USE_CUSTOM_FORMAT | no | 否 | 设置为'yes'使用PostgreSQL自定义格式(-Fc),而非默认纯文本压缩格式 |
| COMPRESSION_CMD | gzip | 否 | 用于压缩备份的命令(如'pigz'用于并行压缩),自定义格式时忽略 |
| DECOMPRESSION_CMD | gunzip -c | 否 | 用于解压缩备份的命令(如'pigz -dc'用于并行解压缩),自定义格式时忽略 |
| PARALLEL_JOBS | 1 | 否 | 使用自定义格式恢复时的并行任务数 |
| BACKUP_FILE | 恢复必填 | 恢复时需指定的S3备份文件路径,格式:S3_PREFIX/文件名 | |
| CREATE_DATABASE | no | 否 | 恢复时:设置为'yes'在数据库不存在时创建数据库 |
| DROP_DATABASE | no | 否 | 恢复时:设置为'yes'先删除数据库再恢复(警告:会销毁现有数据),需与CREATE_DATABASE=yes配合使用 |
通过设置SCHEDULE环境变量可实现自动定期备份,例如-e SCHEDULE="@daily"表示每日执行备份。调度格式详情可参考此处。
设置DELETE_OLDER_THAN环境变量可自动删除旧备份,例如-e DELETE_OLDER_THAN="30 days ago"表示删除30天前的备份。
警告:此操作会删除S3_PREFIX路径下的所有文件,不仅限于此脚本创建的备份文件。
设置ENCRYPTION_PASSWORD环境变量(如-e ENCRYPTION_PASSWORD="超强密码")可对备份文件加密。恢复时,若正确设置该变量,会自动检测并解密加密备份。也可手动解密:openssl aes-256-cbc -d -in backup.sql.gz.enc -out backup.sql.gz。
1. 纯文本压缩格式(默认)
2. PostgreSQL自定义格式
-e USE_CUSTOM_FORMAT=yes启用POSTGRES_DATABASE=all时不支持此格式(pg_dumpall不支持)压缩工具优化
纯文本格式默认使用gzip压缩,多核心系统可使用pigz(并行gzip)提升性能:
sh# 备份时使用pigz压缩 $ docker run ... -e COMPRESSION_CMD=pigz ... itbm/postgres-backup-s3 # 恢复时使用pigz解压缩 $ docker run ... -e DECOMPRESSION_CMD="pigz -dc" ... itbm/postgres-backup-s3
自定义格式与并行恢复
sh# 使用自定义格式备份 $ docker run ... -e USE_CUSTOM_FORMAT=yes ... itbm/postgres-backup-s3 # 使用自定义格式并行恢复(4个并行任务) $ docker run ... -e PARALLEL_JOBS=4 -e BACKUP_FILE=backup/dbname_0000-00-00T00:00:00Z.dump ... itbm/postgres-backup-s3
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务