电脑崩溃后如何进入docker容器上的文件系统?

电脑崩溃后如何进入docker容器上的文件系统?

我的计算机上有一个正在运行的 Docker 容器。

计算机因电源故障而崩溃。磁盘启动正常等,现在我想以某种方式进入容器并从那里“抢救”数据。我知道容器 ID。

我可以看到差异/var/lib/docker/aufs/diff;但是,如果可能的话,我需要崩溃期间的整个文件系统。

/var/lib/docker/aufs/mnt,我什么也没看到。

当我尝试使用 运行另一个 docker 时--with-volumes (ID),我什么也没看到。

如何获取崩溃期间的实际数据?

答案1

我不确定这是否是“正确的方式”,但这对我有帮助。

docker commit (ID of the crashed container)

这会从崩溃的容器中创建一个新映像并为我提供它的 ID。现在我只需要运行新图像......

docker run -ti (ID of the new image)

现在我可以安全地抢救数据了。

答案2

也将其发布在这里以便于谷歌搜索。最初发布这里

我发现从非功能容器复制的最简单方法是 docker cp。

docker cp <container-name>:<path/inside/container> <path/on/host/>

感谢 docker cp (关联)您可以直接从容器复制,就像它是文件系统的任何其他部分一样。例如,恢复容器内的所有文件:

mkdir /tmp/container_temp
docker cp example_container:/ /tmp/container_temp/

请注意,您无需指定要递归复制。

相关内容