用于备份和恢复Docker卷的工具。更多信息请阅读我的Medium文章。
注意:备份或恢复前请确保没有容器使用该卷,否则可能导致数据损坏。详见其他说明。
注意:使用docker-compose时,请确保备份和恢复卷标签。详见其他说明。
此方法无需挂载第二个备份卷,可将输出重定向到文件、网络等。
语法:
docker run -v [volume-name]:/volume --rm --log-driver none loomchild/volume-backup backup - > [archive-name]
例如:
docker run -v some_volume:/volume --rm --log-driver none loomchild/volume-backup backup - > some_archive.tar.bz2
将名为some_volume的卷归档到some_archive.tar.bz2归档文件。
注意:--log-driver none选项是必要的,以避免将整个备份存储在临时stdout JSON文件中。更多信息参见Docker日志文档和此问题。
警告:Windows下的PowerShell不应使用此方法,否则将生成不可用的备份。
语法:
docker run -v [volume-name]:/volume -v [output-dir]:/backup --rm loomchild/volume-backup backup [archive-name]
例如:
docker run -v some_volume:/volume -v /tmp:/backup --rm loomchild/volume-backup backup some_archive
将名为some_volume的卷归档到/tmp/some_archive.tar.bz2归档文件。
如果目标卷非空,恢复将失败(使用-f标志覆盖)。
此方法无需挂载第二个备份卷。
注意:不要忘记用于交互操作的-i开关。
语法:
cat [archive-name] | docker run -i -v [volume-name]:/volume --rm loomchild/volume-backup restore -
例如:
cat some_archive.tar.bz2 | docker run -i -v some_volume:/volume --rm loomchild/volume-backup restore -
将清理并从some_archive.tar.bz2归档文件恢复名为some_volume的卷。
语法:
docker run -v [volume-name]:/volume -v [output-dir]:/backup --rm loomchild/volume-backup restore [archive-name]
例如:
docker run -v some_volume:/volume -v /tmp:/backup --rm loomchild/volume-backup restore some_archive
将清理并从/tmp/some_archive.tar.bz2归档文件恢复名为some_volume的卷。
使用标准输出的一个很好的例子是直接将卷迁移到新主机。
语法:
docker run -v [volume-name]:/volume --rm --log-driver none loomchild/volume-backup backup - |\ ssh [接收方] docker run -i -v [volume-name]:/volume --rm loomchild/volume-backup restore -
注意:如果主机之间没有流量限制,可以通过关闭压缩来节省CPU时间,如下例所示:
例如:
docker run -v some_volume:/volume --rm --log-driver none loomchild/volume-backup backup -c none - |\ ssh *** docker run -i -v some_volume:/volume --rm loomchild/volume-backup restore -c none -
升级/更新volume-backup
docker pull loomchild/volume-backup
查找所有使用卷的容器(备份前需停止它们)
docker ps -a --filter volume=[volume-name]
排除某些文件并将归档发送到标准输出
docker run -v [volume-name]:/volume --rm --log-driver none loomchild/volume-backup backup -e [排除的通配符] - > [archive-name]
使用不同的压缩算法以获得更好的性能
docker run -v [volume-name]:/volume --rm --log-driver none loomchild/volume-backup backup -c gz - > [archive-name]
使用详细-v标志显示简单进度指示(备份和恢复均适用)
docker run -v [volume-name]:/volume --rm --log-driver none loomchild/volume-backup backup -v - > [archive-name]
使用-x选项传递额外参数给Tar工具
docker run -v [volume-name]:/volume --rm --log-driver none loomchild/volume-backup backup -x --verbose - > [archive-name]
卷标签不会自动备份或恢复,但可能是应用正常工作所必需的(例如使用docker-compose时)。如果需要保留标签,可按如下方式创建标签备份文件:docker inspect [volume-name] -f "{{json .Labels}}" > labels.json。恢复数据时,需要在运行恢复脚本前手动创建带有标签的目标卷:docker volume create --label "label1" --label "label2" [volume-name]。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429