导出和导入docker数据卷

docker卷的备份可以使用一个临时容器来挂载卷很轻松的完成:

1
2
3
4
5
docker run --rm `
-v "$VOLUME_NAME:/backup-volume" `
-v "$(pwd):/backup" `
busybox `
tar -zcvf /backup/my-backup.tar.gz /backup-volume

也可以导入:

1
2
3
4
5
docker run --rm `
-v "$VOLUME_NAME:/backup-volume"
-v "$(pwd):/backup" `
busybox `
tar -xvzf /backup/my-backup.tar.gz -C /

可以参考docker-vackup这个bash脚本。

不过现在有个更易用的工具:Volumes Backup & Share扩展。

可以看看官方的介绍博客

但要注意的是,这个扩展导出的压缩包格式是.zst,它使用的压缩算法是facebook的zstd,普通的压缩软件比如7z是不支持的。

zstd官方提供了命令行工具,我们还可以使用集成了zstd的7-Zip-zstd来代替官方7z。