导出包含已装载卷内容的Docker容器

时间:2020-04-07 15:05:11

标签: docker docker-volume

我正在尝试导出一个使用已安装的本地卷作为其根的docker容器,该容器与docker run --privileged -v /path/to/local/files:/root --name cse303dev -it cse303一起运行以安装该本地目录。

将容器和本地安装目录的所有内容导出到某种简单的tar文件中的最佳方法是什么?然后,我将如何轻松地重新导入该容器并运行它,以便可以查看和使用从导出该容器的本地计算机复制的所有文件?这可能吗?

1 个答案:

答案 0 :(得分:1)

您几乎永远不会“导出”容器本身。容器通常旨在自由销毁和重建。

在您的情况下,您已经关心的数据存储在容器外部(在绑定安装的文件夹中,这是简单的情况),因此您可以将目录树复制到其他任何位置,然后运行新副本那里的容器。

(cd /path/to/local/files; tar cvzf ~/local-files.tar.gz .)
scp local-files.tar.gz there:
ssh there

mkdir files
(cd files; tar xvzf ../local-files.tar.gz)
docker run -v $PWD/files:/root cse303

如果要将数据存储在命名卷中,这将比较棘手。 Docker文档描述了how to back up the contents of a named volume,您将必须执行该过程。