作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
如 Working with Volumes 上的 Docker 文档中所述有所谓的 data-only 容器的概念,它提供了一个可以挂载到多个其他容器中的卷,无论这个 data-only 容器是否实际运行。
基本上,这听起来很棒。但有一件事我不明白。
这些卷(出于可移植性原因, 明确映射到主机上的文件夹,如文档所述)由 Docker 在主机上的某个内部文件夹中创建和管理(/var/docker/volumes/…
)。
假设我使用了这样一个卷,然后我需要将它从一台主机迁移到另一台主机 - 我如何移植该卷? AFAICS 它具有唯一的 ID - 我可以将卷及其相应的仅数据容器复制到新主机吗?如何找出要复制的文件?或者是否有一些我尚未发现的 Docker 内置支持?
最佳答案
官方答案见 "Backup, restore, or migrate data volumes" 部分:
备份:
sudo docker run --rm --volumes-from DATA -v $(pwd):/backup busybox tar cvf /backup/backup.tar /data
--rm
:容器退出时移除--volumes-from DATA
:附加到DATA容器共享的volumes-v $(pwd):/backup
:绑定(bind)挂载当前目录到容器中;将 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
关于docker - 如何将仅数据卷从一台主机移植到另一台主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21597463/
我是一名优秀的程序员,十分优秀!