一尘不染

如何将仅数据卷从一台主机移植到另一台主机?

docker

如Docker文档中有关使用卷的文档中所述,存在所谓
的仅数据 容器的概念,该容器提供了可以安装到多个其他容器中的卷,无论该数据容器是否正在运行。

基本上,这听起来很棒。但是有一件事我不明白。

这些卷(由于可移植性原因,
明确映射到主机上的文件夹,如文档所述)由Docker在主机上的某个内部文件夹中创建和管理/var/docker/volumes/…

假设我使用了这样一个卷,然后需要将其从一台主机迁移到另一台主机-如何移植该卷?AFAICS具有唯一的ID-
我可以直接将卷及其相应的仅数据容器复制到新主机吗?如何找出要复制的文件?还是我还没有发现Docker内置的一些支持?


阅读 320

收藏
2020-06-17

共1个答案

一尘不染

官方答案在“备份,还原或迁移数据卷”部分中

备份:

sudo docker run --rm --volumes-from DATA -v $(pwd):/backup busybox tar cvf /backup/backup.tar /data
  • --rm:退出容器时将其取出
  • --volumes-from DATA:附加到DATA容器共享的卷
  • -v $(pwd):/backup:将当前目录绑定安装到容器中;将tar文件写入
  • busybox:图像更简单-便于快速维护
  • tar cvf /backup/backup.tar /data:创建/ data目录中所有文件的未压缩tar文件

恢复:

# create a new data container
$ sudo docker create -v /data --name DATA2 busybox true
# untar the backup files into the new container᾿s data volume
$ sudo docker run --rm --volumes-from DATA2 -v $(pwd):/backup busybox tar xvf /backup/backup.tar
data/
data/sven.txt
# compare to the original container
$ sudo docker run --rm --volumes-from DATA -v `pwd`:/backup busybox ls /data
sven.txt
2020-06-17