对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

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

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

driver-pros-cons.png

选自官方文档

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

原文发布时间为:2016-04-15
本文作者:qinlu1988
本文来自云栖社区合作伙伴DockerOne,了解相关信息可以关注DockerOne。
原文标题:对Docker存储驱动的评价
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/225549

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。