主机内核降级后,所有映像和容器都消失了
美好的一天。
在主机上安装了内核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
软件包。