当我尝试通过以下方式安装docker时:
curl -sSL https://get.docker.com/ | sh
我收到消息:
警告:linux-image-extra-virtual软件包不支持当前内核。我们没有AUFS支持。考虑安装linux-image-virtual kernel和linux-image-extra-virtual软件包以支持AUFS。
然而,Debian Jessie似乎都没有这个软件包:
# apt-get install linux-image-virtual linux-image-extra-virtual
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package linux-image-virtual
E: Unable to locate package linux-image-extra-virtual
我在这里缺少什么?
答案 0 :(得分:12)
现代内核不支持aufs,因此您应该跳过aufs的overlayfs。只需使用以下选项重新启动docker守护程序:
--storage-driver=overlay2
(或将此选项添加到/ etc / default / docker)
在某些系统中,您应该通过创建包含内容的/etc/systemd/system/docker.service来添加文件/ etc / default / docker的处理以启动过程:
[Service]
EnvironmentFile=-/etc/default/docker
ExecStart=
ExecStart=/usr/bin/docker daemon -H fd:// $OPTIONS \
$DOCKER_STORAGE_OPTIONS \
$DOCKER_NETWORK_OPTIONS \
$BLOCK_REGISTRY \
$INSECURE_REGISTRY \
$DOCKER_OPTS
更多信息here
执行
systemctl daemon-reload
要使更改生效。
小心!您的所有图片都无法访问。如果你想保留它们,只需保存并重新加载它们。您可以找到好的描述here
UPD。我已将overlay
更改为overlay2
,因为它解决了比描述here更多的问题
<强> UDP 即可。不相关,因为在现代版本的docker(18-06)中默认使用了overlay2
。
答案 1 :(得分:4)
实际上安装stock jessie会为你提供一个内核,它支持aufs。我的猜测是你通过jessie-backports升级到更高的内核版本,这不是标准的jessie设置。
使用当前的Debian jessie 8.7.1 amd64和内核3.16.0.4对此进行了测试。
# cat /etc/debian_version
8.7
# dpkg --get-selections | grep linux-image
linux-image-3.16.0-4-amd64 install
linux-image-amd64 install
# dpkg -L linux-image-3.16.0-4-amd64 | grep aufs
/lib/modules/3.16.0-4-amd64/kernel/fs/aufs
/lib/modules/3.16.0-4-amd64/kernel/fs/aufs/aufs.ko
所以回答你的问题:
您可以重新安装Debian Jessie或降级到默认内核,并且您有一个支持aufs的jessie。
要在Debian 9上安装aufs,又称Debian,只需发出apt-get install aufs-dkms
即可。遗憾的是,目前jessie-backports无法使用。
在我们公司,我们正在使用jessie aufs设置驱动我们的码头主机,一切都运行完美。
更新08-2018
即使现在我也不推荐使用overlay2进行制作。我们目前遇到容器问题,当在具有overlay2存储的容器中运行时,mysql无法创建/var/run/mysqld.sock。
自2018年8月起,one year old issue解决了此问题。
答案 2 :(得分:-2)
你可以尝试
sudo apt-get install linux-image-extra-$(uname -r)
安装应包含AUFS支持的增强内核版本。