本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
该镜像专为 PostgreSQL 数据库提供自动化备份解决方案,通过集成 pg_dump 工具与定时任务调度功能,实现数据库全量/增量备份、备份文件管理及存储策略的统一配置,适用于开发、测试及生产环境的 PostgreSQL 数据保护需求。
| 功能特性 | 描述 |
|---|---|
| 定时备份调度 | 支持通过 cron 表达式配置备份频率(如每日凌晨 2 点、每周日凌晨等)。 |
| 多备份格式支持 | 兼容 pg_dump 原生格式:plain(SQL 文本)、custom(自定义格式)、tar(归档格式)。 |
| 备份压缩 | 自动对备份文件进行 gzip 压缩,减少存储空间占用。 |
| 备份保留策略 | 支持按天数自动清理过期备份文件,避免存储溢出。 |
| 多存储方式 | 支持本地目录挂载存储,或对接远程存储(如 S3 兼容对象存储、FTP/SFTP)。 |
| 轻量级设计 | 基于 Alpine 基础镜像构建,体积小,资源占用低。 |
兼容 PostgreSQL 9.6+ 版本(需确保 pg_dump 版本与数据库服务版本匹配)。
通过 docker run 命令快速创建备份任务,示例如下(本地存储+每日备份):
docker run -d \ --name postgres-backup \ -e POSTGRES_HOST=postgres-server \ # PostgreSQL 服务地址 -e POSTGRES_PORT=5432 \ # PostgreSQL 端口 -e POSTGRES_USER=backup_user \ # 具备备份权限的数据库用户 -e POSTGRES_PASSWORD=SecurePass123 \ # 数据库用户密码 -e POSTGRES_DB=target_db \ # 需备份的数据库名(多库用逗号分隔) -e BACKUP_SCHEDULE="0 2 * * *" \ # cron 表达式:每日凌晨 2 点执行 -e BACKUP_RETENTION_DAYS=7 \ # 保留最近 7 天备份 -v /host/backup/dir:/backup \ # 本地挂载备份目录 postgres-backup:latest
| 环境变量 | 必填 | 默认值 | 描述 |
|---|---|---|---|
POSTGRES_HOST | 是 | - | PostgreSQL 服务 IP 或域名。 |
POSTGRES_PORT | 否 | 5432 | PostgreSQL 服务端口。 |
POSTGRES_USER | 是 | - | 数据库用户名(需具备 CONNECT 和 SELECT 权限,或 pg_dump 所需权限)。 |
POSTGRES_PASSWORD | 是 | - | 数据库用户密码。 |
POSTGRES_DB | 否 | postgres | 需备份的数据库名,多库用逗号分隔(如 db1,db2)。 |
BACKUP_SCHEDULE | 否 | 0 0 * * * | cron 表达式,定义备份执行时间(如 */30 * * * * 表示每 30 分钟)。 |
BACKUP_FORMAT | 否 | custom | 备份格式:plain(SQL 文本)、custom(pg_dump 自定义格式)、tar。 |
BACKUP_COMPRESS | 否 | true | 是否启用 gzip 压缩(true/false)。 |
BACKUP_RETENTION_DAYS | 否 | 30 | 备份文件保留天数(超过则自动删除)。 |
STORAGE_TYPE | 否 | local | 存储类型:local(本地)、s3(S3 兼容存储)。 |
S3_ENDPOINT | 否 | - | S3 存储端点(如 [***]),STORAGE_TYPE=s3 时必填。 |
S3_BUCKET | 否 | - | S3 存储桶名称,STORAGE_TYPE=s3 时必填。 |
S3_ACCESS_KEY | 否 | - | S3 访问密钥,STORAGE_TYPE=s3 时必填。 |
S3_SECRET_KEY | 否 | - | S3 密钥,STORAGE_TYPE=s3 时必填。 |
以下为与 PostgreSQL 服务联动的 docker-compose.yml 配置示例:
version: '3.8' services: postgres: image: postgres:14-alpine environment: POSTGRES_USER: backup_user POSTGRES_PASSWORD: SecurePass123 POSTGRES_DB: target_db volumes: - postgres-data:/var/lib/postgresql/data restart: unless-stopped postgres-backup: image: postgres-backup:latest depends_on: - postgres environment: POSTGRES_HOST: postgres POSTGRES_PORT: 5432 POSTGRES_USER: backup_user POSTGRES_PASSWORD: SecurePass123 POSTGRES_DB: target_db BACKUP_SCHEDULE: "0 2 * * *" # 每日凌晨 2 点备份 BACKUP_RETENTION_DAYS: 7 # 保留 7 天备份 BACKUP_FORMAT: "custom" # 使用 pg_dump 自定义格式(支持增量恢复) volumes: - /host/backup/dir:/backup # 本地备份目录 restart: unless-stopped volumes: postgres-data:
{数据库名}_{备份时间戳}.{格式}.gz(如 target_db_20240520_020000.custom.gz)。BACKUP_RETENTION_DAYS 天数的文件。使用 pg_restore 工具恢复备份文件(以 custom 格式为例):
# 从本地备份文件恢复 pg_restore -h postgres-host -U postgres-user -d target_db /backup/target_db_20240520_020000.custom.gz
postgres 或 root)有读写权限。pg_dump 版本需与 PostgreSQL 服务版本一致,避免备份格式不兼容。docker network 互联)。免费版仅支持 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