Make Mark
Make Mark

Reputation: 3765

Why use AUFS as the default Docker storage backend instead of devicemapper?

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

Answers (3)

Shi
Shi

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

Dan Dascalescu
Dan Dascalescu

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".

Why using DeviceMapper for Discourse sucks

Upvotes: 7

Ben Whaley
Ben Whaley

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

Related Questions