tiredofit/docker-db-backup高级技巧:S3云存储与定时清理策略
tiredofit/docker-db-backup高级技巧:S3云存储与定时清理策略
tiredofit/docker-db-backup是一个强大的Docker容器,专为备份MySQL和PostgreSQL数据库设计,支持自动化备份和数据加密。本文将详细介绍如何配置S3云存储集成和定时清理策略,帮助你构建更安全、高效的数据库备份系统。
📦 S3云存储配置:实现备份数据云端化
将备份数据存储到S3兼容对象存储服务(如AWS S3、MinIO等)是保障数据安全的重要措施。通过以下步骤,你可以轻松实现备份文件的自动上传和管理。
核心环境变量配置
在examples/compose.yml中,通过设置以下环境变量启用S3功能:
environment:
# S3基础配置
- DEFAULT_S3_BUCKET=my-backup-bucket # S3存储桶名称
- DEFAULT_S3_KEY_ID=AKIAEXAMPLEKEY # S3访问密钥ID
- DEFAULT_S3_KEY_SECRET=secretkeyexample # S3密钥
- DEFAULT_S3_REGION=us-east-1 # 区域
- DEFAULT_S3_PATH=/backups # 存储路径
- DEFAULT_S3_PROTOCOL=https # 协议(http/https)
高级S3参数(可选)
对于私有S3服务(如MinIO),可通过以下参数自定义端点:
- DEFAULT_S3_HOST=minio.example.com # S3服务地址
- DEFAULT_S3_PORT=9000 # 自定义端口
- DEFAULT_S3_CERT_CA_FILE=/certs/ca.pem # 自定义CA证书
配置完成后,备份文件将自动上传至指定S3存储桶,实现数据异地容灾。相关逻辑实现可参考install/assets/functions/10-db-backup中的S3上传模块。
🧹 定时清理策略:释放存储空间
随着时间推移,备份文件会占用大量存储空间。通过配置自动清理规则,可以定期删除过期备份,保持存储效率。
基础清理配置
在examples/compose.yml中设置全局清理规则:
environment:
# 全局默认清理规则(分钟)
- DEFAULT_CLEANUP_TIME=10080 # 7天(60*24*7)
数据库级别的清理策略
支持为不同数据库设置独立清理规则,覆盖全局默认值:
# 数据库1的清理规则(3小时)
- DB01_CLEANUP_TIME=180
# 数据库2的清理规则(1天)
- DB02_CLEANUP_TIME=1440
清理逻辑通过install/assets/functions/10-db-backup中的cleanup_old_data函数实现,支持按文件修改时间自动删除过期备份。
🔄 完整配置示例
以下是集成S3存储和定时清理的完整compose.yml示例片段:
services:
example-db-backup:
image: tiredofit/db-backup
environment:
# 基础配置
- TIMEZONE=Asia/Shanghai
- DEFAULT_BACKUP_INTERVAL=1440 # 每天备份
- DEFAULT_BACKUP_BEGIN=0300 # 凌晨3点开始
# S3配置
- DEFAULT_S3_BUCKET=my-db-backups
- DEFAULT_S3_KEY_ID=your-access-key
- DEFAULT_S3_KEY_SECRET=your-secret-key
- DEFAULT_S3_REGION=cn-north-1
- DEFAULT_S3_PATH=/mysql
# 清理配置
- DEFAULT_CLEANUP_TIME=43200 # 30天清理
# 数据库连接信息
- DB01_TYPE=mariadb
- DB01_HOST=example-db-host
- DB01_NAME=example
- DB01_USER=backupuser
- DB01_PASS=backuppassword
📝 使用建议
-
密钥安全:S3密钥等敏感信息建议通过Docker Secrets或环境变量文件管理,避免直接写在配置文件中
-
多级备份:结合本地备份和S3云存储,实现"本地+异地"双重备份策略
-
定期测试:通过
backup-now命令手动触发备份,验证S3上传和清理功能是否正常 -
日志监控:通过查看容器日志(
docker logs example-db-backup)监控备份状态
通过合理配置S3云存储和定时清理策略,tiredofit/docker-db-backup可以为你的数据库提供企业级的备份解决方案,既保障数据安全,又避免存储资源浪费。
需要获取最新镜像或更多配置选项,请访问项目仓库:git clone https://gitcode.com/gh_mirrors/do/docker-db-backup
更多推荐

所有评论(0)