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

用于在PostgreSQL数据库与S3存储之间进行备份和恢复操作,支持定期备份和加密功能。可通过环境变量配置实现灵活的备份策略,适用于需要将PostgreSQL数据安全存储到S3或从S3恢复的场景。
SCHEDULE环境变量)ENCRYPTION_PASSWORD)pigz替代gzip)DELETE_OLDER_THAN)$ 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
$ 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环境变量时,容器会自动执行恢复过程而非备份。
apiVersion: 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。
-e USE_CUSTOM_FORMAT=yes启用POSTGRES_DATABASE=all时不支持此格式(pg_dumpall不支持)纯文本格式默认使用gzip压缩,多核心系统可使用pigz(并行gzip)提升性能:
# 备份时使用pigz压缩 $ docker run ... -e COMPRESSION_CMD=pigz ... itbm/postgres-backup-s3 # 恢复时使用pigz解压缩 $ docker run ... -e DECOMPRESSION_CMD="pigz -dc" ... itbm/postgres-backup-s3
# 使用自定义格式备份 $ 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
免费版仅支持 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