# A Practical Comparison of Docker Graphdrivers

DevFeed: [A Practical Comparison of Docker Graphdrivers](<https://devfeed.tech/articles/the-brutally-honest-guide-to-docker-graphdrivers-35202.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/the-brutally-honest-guide-to-docker-graphdrivers/>)

Published: 2016-04-02T18:47:47Z

Content type: opinion

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [Docker](<https://devfeed.tech/topics/docker.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [btrfs](<https://devfeed.tech/topics/btrfs.md>), [Ubuntu](<https://devfeed.tech/topics/ubuntu.md>), [Debian](<https://devfeed.tech/topics/debian.md>)

Tags: [btrfs](<https://devfeed.tech/tags/btrfs.md>), [debian](<https://devfeed.tech/tags/debian.md>), [docker](<https://devfeed.tech/tags/docker.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [opinion](<https://devfeed.tech/tags/opinion.md>), [ubuntu](<https://devfeed.tech/tags/ubuntu.md>)

## AI overview

The article gives an opinionated comparison of Docker graphdrivers, discussing Overlay, Aufs, Btrfs, Zfs, Devicemapper, and Vfs. It highlights kernel requirements, setup complexity, distribution support, and reported issues for each driver.

## Source excerpt

Sup, let me give you fair warning here. Everything contained in this post is my opinion so don't go getting your panties all in a knot on Hacker News because you don't agree with me. I could honestly care less, because that's the thing about my opinion, it's mine. I am going to give you my honest and dare I say it "blunt" opinion about each of the Docker graphdrivers so you can decide for yourself which one is the best one for you. None are perfect each has it's flaws and I will be laying those out. Let's begin. Overlay Overlayfs was added in the 3.18 kernel. This is important to note because if you are running overlay on an older kernel than 3.18 you are either: Not running the same overlay. Running a kernel with overlayfs backported onto it, which is what we call a "frankenkernel". Frankenkernels are not to be trusted. This is not to say it won't work, hey it might work great, but it's not to be trusted. Overlay is great but you need a recent kernel. There are also some super obscure kernel bugs with regard to sockets or certain python packages docker/docker#12080. But I will say personally I use overlay, I have not hit these bugs recently and I have all my 100+ dockerfiles running as continuous builds on my server with overlay and they all work. Aufs Aufs is another great one. But it is not in the kernel by default which blows. On Ubuntu/Debian distros this is as easy as installing the kernel extras package but other distros it might not be as simple. Btrfs Btrfs is great too but you need to partition the disk you will use for /var/lib/docker as btrfs first. This is kinda a hurdle to jump that I don't think a lot of people are willing to do. Zfs Zfs is another good one, of course, like btrfs it takes some setup and installing the zfs.ko on your system. But this driver might become a whole lot more popular if Ubuntu 16.04 ships with zfs support. Devicemapper Honestly it makes me super disappointed to say this, but buyer beware. Hey on the plus side.... it's in the k