Docker镜像,用于备份和恢复Docker容器卷,支持AWS S3和本地存储,可配置定时任务、加密及通知功能。名称由来:Docker + Backup = Dockup。
相关扩展项目示例:
mongodump和mongorestore备份和恢复MongoDB实例确保目标容器已运行并挂载卷,例如:
bashdocker run -d --name mysql tutum/mysql
通过docker inspect mysql查看卷信息,示例输出:
json"Volumes": { "/etc/mysql": {}, "/var/lib/mysql": {} }
基本备份命令
bashdocker run --rm \ --env-file env.txt \ --volumes-from mysql \ --name dockup wetransform/dockup:latest
环境变量配置(env.txt)
ini# AWS S3配置(使用AWS模式时必填) AWS_ACCESS_KEY_ID=<您的AWS访问密钥> AWS_SECRET_ACCESS_KEY=<您的AWS密钥> AWS_DEFAULT_REGION=us-east-1 # 参考下方AWS区域表 S3_BUCKET_NAME=docker-backups.example.com # S3桶名称 S3_FOLDER=mybackups/ # S3文件夹路径,需以斜杠结尾或留空 # 备份基本配置 BACKUP_NAME=mysql # 备份名称前缀 PATHS_TO_BACKUP=/etc/mysql /var/lib/mysql # 需备份的路径,设为"auto"可自动检测卷 RESTORE=false # 是否恢复(备份时设为false) DOCKUP_COMPRESS=true # 是否压缩备份文件 # 备份模式(可选,默认aws) DOCKUP_MODE=aws # 或"local"(本地存储) # 自定义命令(可选) BEFORE_BACKUP_CMD="echo '开始备份'" # 备份前执行的命令 AFTER_BACKUP_CMD="echo '备份完成'" # 备份后执行的命令 # 重试配置(可选) BACKUP_TAR_TRIES=5 # 最大重试次数(默认5) BACKUP_TAR_RETRY_SLEEP=30 # 重试间隔秒数(默认30) # 定时任务(可选) CRON_TIME=0 0 * * * # 每天午夜执行备份
本地模式配置
当DOCKUP_MODE=local时,备份文件存储在容器内/dockup/target目录(可通过卷挂载到宿主机)。
本地清理配置:
iniLOCAL_CLEANUP_OLDER_HOURS=24 # 删除超过24小时的备份(保留最新备份)
基本恢复命令
bashdocker run --rm \ --env-file restore-env.txt \ --volumes-from mysql \ --name dockup wetransform/dockup:latest
恢复环境变量配置(restore-env.txt)
ini# 基础配置 RESTORE=true # 启用恢复模式 BACKUP_NAME=mysql # 需恢复的备份名称前缀 LAST_BACKUP=mysql_20240101_000000.tar.gz # (可选)指定备份文件名,默认最新备份 # AWS/S3配置(同备份) AWS_ACCESS_KEY_ID=<您的AWS访问密钥> AWS_SECRET_ACCESS_KEY=<您的AWS密钥> AWS_DEFAULT_REGION=us-east-1 S3_BUCKET_NAME=docker-backups.example.com S3_FOLDER=mybackups/ # 恢复后命令(可选) AFTER_RESTORE_CMD="chown -R mysql:mysql /var/lib/mysql" # 恢复后执行的命令
备份加密
需提供GPG公钥:
iniGPG_KEYRING=/path/to/public-keyring # 公钥环路径 GPG_KEYNAME=backup-key # 公钥用户ID
恢复解密
需提供GPG私钥及密码:
iniGPG_KEYRING=/path/to/public-keyring # 公钥环路径 GPG_SECRING=/path/to/secret-keyring # 私钥环路径 GPG_PASSPHRASE=<私钥密码> # 解密密码
Slack通知
iniNOTIFY_BACKUP_SUCCESS=true # 启用成功通知 NOTIFY_BACKUP_FAILURE=true # 启用失败通知 NOTIFY_SLACK_WEBHOOK_URL=https://hooks.slack.com/services/XXX # Slack Webhook URL
| 区域名称 | 区域代码 |
|---|---|
| US Standard | us-east-1 |
| US West (Oregon) | us-west-2 |
| US West (N. California) | us-west-1 |
| EU (Ireland) | eu-west-1 |
| EU (Frankfurt) | eu-central-1 |
| Asia Pacific (Singapore) | ap-southeast-1 |
| Asia Pacific (Sydney) | ap-southeast-2 |
| Asia Pacific (Tokyo) | ap-northeast-1 |
| South America (Sao Paulo) | sa-east-1 |
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务