美好的一天。
在主机上安装了内核3.16。通过deb软件包安装内核3.14后,我丢失了所有的docker镜像和容器。输出命令"泊坞窗图像"和#34; docker ps -a"是空的。这是docker的正常行为吗?
感谢。
答案 0 :(得分:10)
我会自己回答。这可能对某人有用。
Docker使用了存储驱动程序" aufs"在旧内核上。因此模块" aufs.ko"必须加载。在新的内核支持中,没有启用aufs,并且docker开始使用存储驱动程序" devicemapper"。
答案 1 :(得分:3)
要在Ubuntu上实际修复它,请运行
sudo apt-get -y install linux-image-extra-$(uname -r)
这将安装docker所需的aufs
内核模块,但在内核升级期间可能会丢失。不确定包管理器为什么会错过这种依赖。
答案 2 :(得分:2)
正如Denis Pitikov指出的那样,如果创建它们的存储驱动程序(例如aufs
)不再可用,则图像和容器可能会消失。
在Ubuntu 14.04上运行时,当前Docker install script会自动安装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
软件包。