brainbitsgmbh/mysql-backup该镜像为MySQL和MariaDB数据库提供简单的备份策略。通过mysqldump创建备份并压缩,仅需修改一个环境变量即可切换备份或恢复模式,适用于需要定期备份数据库并自动管理备份文件的场景。
backup)或恢复(restore)模式镜像采用以下策略管理备份文件的创建与清理:
备份类型判断:
daily-开头)hourly-开头)备份清理规则:
MAX_DAILY_BACKUP_AGE)的所有每日备份文件MAX_HOURLY_BACKUP_COUNT)的最新每小时备份文件此策略确保保留最近几天的备份文件,同时维持一定数量的近期备份,避免存储过多冗余文件。
以下环境变量用于配置脚本行为:
| 变量名 | 默认值 | 描述 |
|---|---|---|
MODE | backup | 脚本模式,可选值:backup(备份)、restore(恢复) |
DATABASE_DSN | 数据库连接DSN,格式:mysql://user:password@host:port/database_name | |
DATABASE_DSN_FILE | 替代DATABASE_DSN,指定包含DSN的文件路径(用于避免直接通过环境变量传递敏感信息) | |
BACKUP_DIRECTORY | /backup | 容器内备份文件存储目录(通常通过卷挂载修改,而非直接修改此变量) |
MAX_DAILY_BACKUP_AGE | 7 | 仅备份模式有效,每日备份保留天数 |
MAX_HOURLY_BACKUP_COUNT | 3 | 仅备份模式有效,每小时备份保留文件数量 |
BACKUP_RESTORE_NAME | latest | 仅恢复模式有效,待恢复的备份文件名(相对于BACKUP_DIRECTORY的相对路径) |
bash# 创建备份,自动创建指向最新备份的`latest`链接 docker run -it --rm \ -e "MODE=backup" \ -e "DATABASE_DSN=mysql://MyDbUser:***/my-database" \ -v "$(pwd)/backup:/backup" \ brainbitsgmbh/mysql-backup:latest
bash# 恢复`latest`备份 docker run -it --rm \ -e "MODE=restore" \ -e "DATABASE_DSN=mysql://MyDbUser:***/my-database" \ -v "$(pwd)/backup:/backup" \ brainbitsgmbh/mysql-backup:latest
localhost,容器可能无法访问主机数据库,建议使用host.docker.internal(如示例所示)或数据库所在主机的实际IPmysqldump和恢复操作)manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务