Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 如何在Debian上启用AUFS?_Docker_Debian_Gitlab Ci - Fatal编程技术网

Docker 如何在Debian上启用AUFS?

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

当我尝试通过以下方式安装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 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
prints
Linux 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,在这些页面上找不到有关生产准备的信息。你能编辑你的链接,将锚(#)添加到确切的章节吗?我已经添加了锚,但是没有可用的。阅读到未来校对或找到文本'<代码>很多人认为OverlayFS是未来……/代码>你会发现一个很好的图表,所有的设备驱动程序都有优点和缺点。哦,现在我明白了,对不起。但是我回答的关键是现代内核不支持aufs,你可能会说有devicemapper,但很多人更喜欢overlay,只是google
overlay vs devicemapper
原始问题的主题是关于aufs,而不是devicemapper。通过
apt-get-install-aufs-dkms
,即使是即将推出的内核4.8版的debian扩展版也将支持aufs。