导出一个包含已安装卷内容的 Docker 容器

Exporting a Docker container with contents of mounted volume

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

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

你几乎从不"export"一个容器本身。容器通常旨在自由销毁和重新创建。

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

(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,您必须完成该过程。