主机内核降级后,所有映像和容器都消失了

美好的一天。

在主机上安装了内核3.16。 通过deb包安装内核3.14后,我丢失了所有的docker镜像和容器。 命令“docker images”和“docker ps -a”的输出是空的。 这是docker的正常行为?

谢谢。

我会回答自己。 这可能是有用的人。

Docker在旧内核上使用了存储驱动“aufs”。 因此必须加载模块“aufs.ko”。 在新的内核支持aufs没有启用,docker开始使用存储驱动程序“devicemapper”。

要真正在Ubuntu上修复它,运行

sudo apt-get -y install linux-image-extra-$(uname -r)

这将安装docker需要但在内核升级期间可能丢失的aufs内核模块。 不知道为什么包pipe理器错过了这种依赖。

正如Denis Pitikov指出的那样,如果创build它们的存储驱动程序(例如aufs )不再可用,则映像和容器可能会消失。

在Ubuntu 14.04上运行时,当前的Docker安装脚本会自动安装linux-image-extra-*软件包(适合当前的内核版本)。 这包括aufs内核模块。

在某些系统上,可能没有安装linux-image-generic软件包。 在这些系统上,下一次运行dist-upgrade ,内核将被升级,但相应的linux-image-extra-*将不会被安装。 当你重新启动你将不会有aufs模块,你的容器和图像可能已经消失。

要解决这个问题:首先,检查你是否正在运行一个通用的内核:

 $ uname -r 3.13.0-49-generic 

如果是这样,请考虑安装linux-image-generic

 $ apt-get install linux-image-generic 

这会将你的内核升级到该软件包所需的版本,并且也会安装-extra软件包。