如何从/var/lib/docker的备份中恢复docker映像和容器



我有一个损坏的Ubuntu 16操作系统,我想备份所有的docker东西。使用--data-dir=在fakerroot外部启动docker守护进程没有帮助,所以我对/var/lib/docker(使用tar --xattrs --xattrs-include='*' --acls(进行了完整备份。

在新系统(升级到Ubuntu 22.04(中,我提取了tar,但发现docker ps的输出为空。我有整个overlay2文件系统和/var/lib/docker/image/overlay2/repositories.json,所以可能有一种方法可以提取图像和容器,但我找不到。

有什么方法可以恢复它们吗?

备份实际上是有效的,这是由于Ubuntu Server 22.04安装过程中安装的docker是通过snap移植的。在删除快照并安装systemd版本后,docker确实识别了overlayfs中的所有图像和容器。谢谢大家!

对于那些无法启动docker守护进程进行备份的用户,可以尝试cp -atar --xattrs-include='*' --acls --selinux来复制整个/var/lib/docker目录。

可能不会,就我对docker的了解而言,它已经用不同的sha256块将您的图像存储在不同的层中。

即使您试图将图像从一台机器传输到另一台机器,您也需要在线公共/私人存储库来存储和检索图像,或者您必须从命令行压缩文件,然后可以将其作为单个文件复制并粘贴到另一个位置。

也许从下一次开始,请确保将所有重要图像存储到任何在线存储库中。

你也可以参考这个线程的不同答案:如何在不使用存储库的情况下将Docker映像从一个主机复制到另一个主机

最新更新