为什么使用AUFS作为默认的Docker存储后端而不是devicemapper?

时间:2014-07-15 17:53:01

标签: docker

Project Atomic对Docker storage backends的描述描述了AUFS与其他存储后端选择之间的技术差异,例如devicemapper。 AUFS不在上游Linux内核中。为什么选择AUFS作为默认存储后端(例如在Ubuntu的Docker中)?是否有AUFS的某些技术属性使其成为比未修补的Linux内核似乎支持的存储后端(如devicemapper)更好的选择?

3 个答案:

答案 0 :(得分:14)

AUFS只是可用的系统/发行版的默认存储后端。否则,devicemapper是默认值。例如,Ubuntu 14.04默认为devicemapper:

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04 LTS"
$ docker info | grep Storage
Storage Driver: devicemapper

这在Docker 0.7.0中发生了变化。在0.7.0之前,Docker依赖于AUFS作为其唯一的存储驱动程序,这就是为什么它是早期版本的Ubuntu中的默认值。

答案 1 :(得分:7)

我远不是文件系统方面的专家,而是Discourse的人,strongly recommend using AUFS, and not DeviceMapper。使用DeviceMapper可能导致痛苦的世界"。

Why using DeviceMapper for Discourse sucks

答案 2 :(得分:0)

Docker documentation说:

  

aufs驱动程序是最老的,但基于Linux内核补丁集,不太可能合并到主内核中。这些也会导致一些严重的内核崩溃。

我使用默认内核在Ubuntu 16.04上使用Docker 17.06.2~ce-0~ubuntu进行了内核崩溃。

我在ext4文件系统上使用overlay2; Docker现在运行正常。