Reputation: 3765
Project Atomic's description of Docker storage backends describes technical differences between AUFS and other storage backend choices, such as devicemapper. AUFS is not in the upstream Linux kernel. Why is AUFS chosen as the default storage backend (for example in Ubuntu's Docker)? Are there some technical properties of AUFS that makes it a better choice than a storage backend such as devicemapper that seems to be supported by an unpatched Linux kernel?
Upvotes: 29
Views: 17832
Reputation: 4258
The Docker documentation says:
The aufs driver is the oldest, but is based on a Linux kernel patch-set that is unlikely to be merged into the main kernel. These are also known to cause some serious kernel crashes.
I had those kernel crashes with Docker 17.06.2~ce-0~ubuntu on Ubuntu 16.04 with default kernel.
I am using overlay2
on ext4 file system; Docker now works fine.
Upvotes: 0
Reputation: 151747
I'm far from an expert on filesystems, but the folks at Discourse, who are, strongly recommend using AUFS, and not DeviceMapper. Using DeviceMapper can result in "a world of pain".
Upvotes: 7
Reputation: 34426
AUFS is only the default storage back end on systems/distributions that have it available. Otherwise, devicemapper is the default. Ubuntu 14.04, for example, defaults to 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
This changed in Docker 0.7.0. Prior to 0.7.0, Docker relied upon AUFS as its only storage driver, which is why it was the default in earlier versions of Ubuntu.
Upvotes: 14