对Docker存储驱动的评价

本文讲的是对Docker存储驱动的评价【编者的话】Docker 的生态系统不断完善,上到容器的编排发布,下到网络存储,都有着各种选择。对于Docker 最底层的存储驱动,也有着Overlay、Zfs等选择,各有利弊,本文从一位使用者的角度对不同的驱动发表了自己的看法,仅供参考。

温馨提示,本文的所有观念谨代表个人看法,所以不要因为你不同意我,就在Hacker News 上和我争论。我可以不那么公正,因为这是我自己的看法。

很坦率的说,我认为每种Docker存储驱动都不好用,所以你要决定哪一种最适合你。没有完美的选择,每一个都有缺陷,我会展示出来。开始吧。

Overlay

Overlay 在内核3.18中被加入。这很重要,因为如果你在3.18之前的内核上运行,你会:
  1. 不是运行的同样的overlay;
  2. 运行在带有overlay 补丁的内核上,也就是我们说的“改造内核”。改造内核不可信。这不是说它行不通,它可能工作的很好,但是不可信。

Overlay很棒,但是你需要一个最新的内核。也有一些关于socket和python包的令人费解的内核bug,参见docker/docker#12080。我个人使用overlay,没有遇到过这些bug,我所有的100多个dockerfile 使用overlay在服务器上运行持续构建,它们运行正常。

Aufs

Aufs 也很棒。但是默认情况下它不在内核中。在Ubuntu/Debian 发行版中很容易作为内核扩展包安装,但是在其他发行版中它可能没那么简单。

Btrfs

Btrfs 也很棒,但是你首先需要对/var/lib/docker使用的硬盘进行分区。这是一道坎,我想很多人不会这样做。

Zfs

Zfs 还不错,当然,就像Btrfs一样,它需要一些配置,并安装zfs.ko到系统中。如果Ubuntu 16.10 默认支持zfs,它会变得更加流行。

Devicemapper

老实说这让我很失望,但是你要当心。再加上,它存在内核中。你一定要完美的配置所有的devicemapper 选项,否则你会发现你只能运行2个左右的容器。

让我告诉你一个故事。

我妈妈曾经询问她朋友著名的鸡肉卷菜谱,这样她能自己做。朋友给了她菜谱,但是漏了一项关键原料,以至于我的妈妈从来都没有做出正确的味道。总是有什么东西不对劲。

这就是我对devicemapper的想法。

它适用于RedHat。

Vfs

我真的很希望你只是用于测试,否则你就是疯了。

这就是全部,感谢你的阅读。

对Docker存储驱动的评价

选自官方文档

原文链接:The Brutally Honest Guide to Docker Graphdrivers(翻译:覃璐)

原文发布时间为:2016-04-15
本文作者:qinlu1988
本文来自云栖社区合作伙伴DockerOne,了解相关信息可以关注DockerOne。
原文标题:对Docker存储驱动的评价
上一篇:《Three.js 入门指南》0 - 说明


下一篇:Java并发问题——乐观锁与悲观锁以及乐观锁的一种实现方式-CAS