Project Atomic对Docker storage backends的描述描述了AUFS与其他存储后端选择之间的技术差异,例如devicemapper。 AUFS不在上游Linux内核中。为什么选择AUFS作为默认存储后端(例如在Ubuntu的Docker中)?是否有AUFS的某些技术属性使其成为比未修补的Linux内核似乎支持的存储后端(如devicemapper)更好的选择?
答案 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可能导致痛苦的世界"。
答案 2 :(得分:0)
aufs驱动程序是最老的,但基于Linux内核补丁集,不太可能合并到主内核中。这些也会导致一些严重的内核崩溃。
我使用默认内核在Ubuntu 16.04上使用Docker 17.06.2~ce-0~ubuntu进行了内核崩溃。
我在ext4文件系统上使用overlay2
; Docker现在运行正常。