企业IT对Docker容器充满信心,某些分析师纷纷猜测Docker容器在下个阶段会在服务器整合领域取代虚拟机。
新集装箱化方式的有趣之处在于其并非新生事物,容器的概念在Unix早期通过使用chroot命令就已经实现了。Linux容器技术是在2008年引入的,Docker软件最初就是基于Linux容器构建的。这么说来,容器如今突然引发人们兴趣,原因何在?
集装箱化应用共享通用的操作系统内核,实例不需要在各自独立的操作系统之上运行。应用可以在几秒钟之内完成部署,而且比基于hypervisor的虚拟化使用的资源更少。然而由于应用都依赖于通用的操作系统内核,这种方式仅适用于共享精确操作系统版本的应用。Docker找到了一种解决该限制的方法。
Docker一路领先
Docker 是由一家PaaS公司dotCloud在2013年推出的一个开源项目。Docker依赖于Linux内核特性比如命名空间以及cgroups,以确保资源隔离并将应用与其依赖项一起打包封装,使应用能够在不同的Linux操作系统之上运行——支持一定程度的可移植性,允许开发人员使用任何语言编写应用,并能够轻松地将应用从笔记本迁移到测试或生产服务器——无论底层使用的是哪种Linux发行版。正是可移植性激起了开发者以及管理员的兴趣。
Docker的市场销售副总裁David Messina说:“在Docker之前,应用或服务的可移植性从未得到过保证。正是由于Docker容器所采用的分离应用限制的方式,帮助我们解决了依赖问题。”
开发人员几乎马上开始注意到这种新的方式能够解决他们所面临的最大问题之一。在2013年8月发布交互式指南之后的一个月,Docker称10000名开发人员进行了试用。在一年之内,红帽以及亚马逊增加了对Docker的商业支持——即使Docker主管警告用户不要用于生产应用也无济于事。Docker 在2014年6月发布1.0版本时,Docker引擎软件已经被下载了275万次。现在这一数字达到了一亿次。
451 Research的研究经理Jay Lyman说,分析师认为Docker软件正合时宜,越来越多的公司投资云计算并处于向DevOps迁移的过程中。
Lyman说:“ Docker提供了一个集成用户界面,提供了更高级别的简便性。你不必成为一名Linux内核专家就能够使用Docker,这拓宽了潜在开发人员的规模。”
Docker 获得的关注越多,瑕疵也会被放大,而且有可能瞬间变得过于流行,至少这是Cal Leeming的思维。Cal Leeming是一名软件工程师同时也是Docker批评家,他通过博客以及社交媒体表达了对Docker的关注。在生产环境中试用六个月以后,Cal Leeming说他发现Docker软件和Docker Hub Registry运行缓慢而且令人失望。
“我可以很清楚地看到,它们承担着投入资金提高产出的压力,”Leeming说,“我评论Docker的原因不是要破坏或者影响该项目。但如此多的人正在试图将Docker视作下一个行业标准。当你看到这种事并且知道解决方案有缺陷,你需要反击。”
然而,Docker赢得了某些很有名的用户,包括PayPal、Spotify以及Yelp,这些用户正在发现该软件的价值。
Yik Yak是一家总部位于亚特兰大市的移动应用公司,该公司的CTO Tom Chernetsky说:“我们使用Docker能够非常快地为不同的开发者构建开发及测试环境,而且不会干涉生产系统。对于快速发展的公司来说,Docker是游戏规则的颠覆者。”
Docker 出乎意料的成功引起了一些容器虚拟化竞争对手的注意,激励他们开发自己的虚拟容器。在2014年底,CoreOS CEO Alex Polvi介绍了该公司新的容器项目Rocket,作为对Docker“在根本上有缺陷”方式的直接回应。Docker的技术方法并不安全,因为其需要一个中央Docker守护进程。而Rocket依赖于系统级守护进程创建容器。
451 Research的研究经理Jay Lyman说:“容器的官方标准仍有待观察。我认为我们已经看到的和hypervisor更接近。VMware占据主导地位,应用最为广泛。但其肯定不是标准,我们可能会看到类似于Dockr和Rocket的其他容器。”
本文作者:张冀川
来源:51CTO