如Docker文档中有关使用卷的文档中所述,存在所谓 的仅数据 容器的概念,该容器提供了可以安装到多个其他容器中的卷,无论该数据容器是否正在运行。
基本上,这听起来很棒。但是有一件事我不明白。
这些卷(由于可移植性原因, 未 明确映射到主机上的文件夹,如文档所述)由Docker在主机上的某个内部文件夹中创建和管理/var/docker/volumes/…。
/var/docker/volumes/…
假设我使用了这样一个卷,然后需要将其从一台主机迁移到另一台主机-如何移植该卷?AFAICS具有唯一的ID- 我可以直接将卷及其相应的仅数据容器复制到新主机吗?如何找出要复制的文件?还是我还没有发现Docker内置的一些支持?
官方答案在“备份,还原或迁移数据卷”部分中:
备份:
sudo docker run --rm --volumes-from DATA -v $(pwd):/backup busybox tar cvf /backup/backup.tar /data
--rm
--volumes-from DATA
-v $(pwd):/backup
busybox
tar cvf /backup/backup.tar /data
恢复:
# 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