Docker 如何在Debian上启用AUFS?
当我尝试通过以下方式安装docker时:Docker 如何在Debian上启用AUFS?,docker,debian,gitlab-ci,Docker,Debian,Gitlab Ci,当我尝试通过以下方式安装docker时: curl -sSL https://get.docker.com/ | sh 我得到的信息是: 警告:linux映像额外虚拟包不支持当前内核。我们没有AUFS支持。考虑安装包Linux映像虚拟内核和Linux映像额外的虚拟AufS支持。 但是,Debian Jessie上似乎不存在这两个包: # apt-get install linux-image-virtual linux-image-extra-virtual Reading package l
curl -sSL https://get.docker.com/ | sh
我得到的信息是:
警告:linux映像额外虚拟包不支持当前内核。我们没有AUFS支持。考虑安装包Linux映像虚拟内核和Linux映像额外的虚拟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
我错过了什么?你可以试试
sudo apt-get install linux-image-extra-$(uname -r)
安装应包含AUFS支持的增强内核版本。现代内核不支持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
更多信息
执行
systemctl daemon-reload
使更改生效
小心您的所有图像都无法访问。如果您想保留它们,只需保存并重新加载即可。你可以找到好的描述
UPD。我将overlay
更改为overlay2
,因为它解决的问题比描述的要多
UDP。不相关,因为现代版docker(18-06)默认使用的是
overlay2
。实际安装股票jessie为您提供了一个支持aufs的内核。我猜你是通过jessie Backport升级到了更高的内核版本,这不是标准的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又名Debian stretch上安装aufs,只需发出apt get install aufs dkms
。遗憾的是,jessie Backport目前无法使用此功能
在我们公司,我们正在驾驶我们的docker主机与杰西aufs设置,一切都运行完美
更新08-2018
即使现在我也不能推荐Overly2用于生产。我们目前遇到一个容器问题,mysql在使用overlay2存储的容器中运行时无法创建/var/run/mysqld.sock
这在2018年8月的文章中已经提到。像这样的软件包似乎并不存在:你是对的,我假设它类似于Ubuntu。
uname-a
说明了什么?你想在哪个基础设施上运行docker?一些虚拟化环境在lxc/AUFS业务方面存在问题。uname-a
printsLinux server.name 4.4.8-x86_64-jb1#1 SMP Thu Apr 21 08:07:36 CEST 2016 x86_64 GNU/Linux
。我不太清楚我们的提供商使用的是什么,但服务器本身是虚拟的。这似乎是Debian Jessie所知道的,从我所读到的上游内核中不包括AUFS。尝试mv/var/lib/docker/aufs/var/lib/docker/aufs_bk
并重新启动docker守护程序。显然,Docker足够聪明,可以使用AUFS中的另一个文件系统。或者,您可以使用--storage driver参数启动Docker守护进程以手动指定另一个守护进程。好吧,Docker运行似乎并不需要AUFS,因为Gitlab CI现在在Docker执行器中运行良好。我只是觉得这会干净一点。谢谢你的努力!截至目前(2017年1月),覆盖层未被视为生产就绪。请咨询@itsafire,在这些页面上找不到有关生产准备的信息。你能编辑你的链接,将锚(#)添加到确切的章节吗?我已经添加了锚,但是没有可用的。阅读到overlay vs devicemapper
原始问题的主题是关于aufs,而不是devicemapper。通过apt-get-install-aufs-dkms
,即使是即将推出的内核4.8版的debian扩展版也将支持aufs。