2019独角兽企业重金招聘Python工程师标准>>>

如果你是数据中心或云计算IT圈子的人,这一年多来应该一直在听到普通的容器、尤其是Docker,关于它们的新闻从未间断过。Docker1.0在今年6月发布后,声势更是达到了前所未有的程度。

动静之所以这么大,就是因为许多公司在以惊人的速度采用Docker。在今年7月的开源大会(OSCon)上,我遇到了早已将服务器应用程序从虚拟 机(VM)转移到容器的无数企业。的确,Docker公司主管服务和支持的副总裁James Turnbull在会上告诉我,其中有三家大银行一直在使用Docker的测试版,现已在生产环境中使用Docker。对任何早期技术来说,这无疑是极大 的充满自信的举动,要知道它在安全至上的金融界几乎闻所未闻。

与此同时,Docker这项开源技术不仅仅是红帽和Canonical等Linux巨头眼里的宠儿。微软等专有软件公司也在热烈拥抱Docker。

那么,为什么大家都追捧容器和Docker呢?James Bottomley是Parallels公司的服务器虚拟化首席技术官,也是一位知名的Linux内核开发人员。他向我解释,Hyper-V、KVM和 Xen等虚拟机管理程序都“基于虚拟化硬件仿真机制。这意味着,它们对系统要求很高。”

然而,容器却使用共享的操作系统。这意味着它们在使用系统资源方面比虚拟机管理程序要高效得多。容器不是对硬件进行虚拟化处理,而是驻留在单单一个 Linux实例上。这反过来意味着,你可以“丢弃没有用的99.9%的虚拟机垃圾,剩下一个小巧简洁的胶囊式容器,里面含有你的应用程 序,”Bottomley如是说。

据Bottomley声称,因此,借助经过全面调优的容器系统,你就可以在同一硬件上拥有数量比使用Xen虚拟机或KVM虚拟机多出四到六倍的服务器应用实例。

是不是觉得听起来很不错?毕竟,你可以让服务器运行多得多的应用程序。那么,为什么之前没有人做过呢?实际上,之前有人做过。容器其实是个旧概念。

容器可以追溯到至少2000年和FreeBSD Jails。甲骨文Solaris也有一个类似概念,名为Zones;Parallels、谷歌和Docker等公司一直在致力于研发诸如OpenVZ和 LXC(Linux容器)之类的开源项目,旨在让容器运行起来顺畅又安全。

的确,很少有人知道容器,但大多数人多年来一直在使用容器。谷歌就有自己的开源容器技术lmctfy(Let Me Contain That For You,意为“让我容纳你的程序”)。只要你使用谷歌的某项功能:比如搜索、Gmail、Google Docks或无论其他什么,就分配了一个新的容器。

然而,Docker建立在LXC的基础上。与任何容器技术一样,就该程序而言,它有自己的文件系统、存储系统、处理器和内存等部件。容器与虚拟机之间的区别主要在于,虚拟机管理程序对整个设备进行抽象处理,而容器只是对操作系统内核进行抽象处理。

这反过来意味着:虚拟机管理程序能做容器做不了的一件事就是,使用不同的操作系统或内核。所以,举例说,你可以使用微软Azure,同时运行 Windows Server2012的实例和SUSE Linux企业级服务器的实例。至于Docker,所有容器都必须使用同样的操作系统和内核。

另一方面,如果你只是想让尽可能多的服务器应用实例在尽可能少的硬件上运行,可能不大关心运行多个操作系统虚拟机。要是同一应用程序的多个副本正是你需要的,那么你会喜欢上容器。

改用Docker这一举措有望每年为数据中心或云计算服务提供商节省数千万美元的电力和硬件成本。所以难怪它们在一窝蜂地尽快采用Docker。

Docker带来了之前技术所没有的几个新特点。第一是,与之前的方法相比,Docker让容器部署和使用起来更容易、更安全。此外,由于 Docker与其他容器领域的巨擘进行了合作,包括Canonical、谷歌、红帽和Parallels,共同开发其关键的开源组件 libcontainer,它为容器带来了迫切需要的标准化。

与此同时,广大开发人员可以使用Docker封装、交付和运行任何应用程序,应用程序成为轻型的、可移植的、自给自足的LXC容器,可以在任何地方运行。正如Bottomley告诉我,“容器让你立即享有应用程序可移植性。”

市场研究公司451 Research的资深分析师Jay Lyman补充道:“企业组织力求以一种高效、标准化、可重复的方式,让应用程序和工作负载更易于移植和分发,而有时很难做到这点。正如GitHub通过 共享源代码来促进合作和创新那样,Docker Hub、Official Repos和商业支持也在帮助众多企业通过改进封装、部署和管理应用程序的方式,应对这个难题。”

最后但并非最不重要的,Docker容器易于部署到云端。正如Ben Lloyd Pearson在opensource.com上写道:“Docker采用了一种特别的方式,以便可以整合到大多数DevOps(开发运营)应用程序当 中,包括Puppet、Chef、Vagrant和Ansible,或者可以独自使用,以管理开发环境。主要卖点是,它简化了通常由另外这些应用程序执行 的好多任务。具体来说,有了Docker,人们就可以搭建与活动服务器一模一样的本地开发环境,从同一个主机运行多个开发环境(每个开发环境有独特的软 件、操作系统和配置),在新的或不同的服务器上测试项目,以及让任何人都可以在设置一模一样的情况下处理同一项目,无论本地主机环境怎样。”

简而言之,Docker能为你做的事情就是:相比其他技术,它能让更多数量的应用程序在同一硬件上运行;它让开发人员易于快速构建可随时运行的容器 化应用程序;它大大简化了管理和部署应用程序的任务。总而言之,我能理解作为一项企业级技术,Docker为何一下子蹿红。我只是希望它不负众望,否则外 头会有一些忧心忡忡的CEO和CIO。

转载于:https://my.oschina.net/u/2397255/blog/598655

Docker到底是什么?为什么它这么火!相关推荐

  1. 人均年薪50万以上,docker到底是什么?为什么这么火?

    为什么要使用Docker? 场景一:公司双十一买了一堆服务器,技术总监让你给它们一个个都配置上JDK.Mysql.Redis等软件环境. 你心里小声嘀咕:"这总监不讲武德!"然后你 ...

  2. 人均年薪80万以上,docker到底是什么?为什么这么火?

    点击上方"民工哥技术之路"选择"置顶或星标" 每天10点为你分享不一样的干货 这两年容器技术及其相关工具,平台异常火爆.在各大技术论坛或云计算峰会议题中,都会占 ...

  3. 【思考】Docker到底解决了什么问题

    本文讲的是[思考]Docker到底解决了什么问题, [编者的话]作者之前是一位B2B行业的从业者,他从自己的角度出发,分析了Docker能够解决的问题.作者认为目前的B2B市场体量还是太小,但是随着D ...

  4. docker到底是什么?有什么用?

    前言:笔者前后两次看了docker的一些文章介绍,每次看完都是一头雾水.总有种是懂非懂的感觉.今天总算理清了头绪,特写此文. docker是什么?可以认为它是一个类似于虚拟机的虚拟化工具,也可以认为它 ...

  5. Docker 到底是什么,能干什么?这一篇文章全部给你解释清楚了

    背景 随着云原生.容器化.微服务.k8s 等技术的发展,容器 Docker 也火了一把,同时也逐渐被软件开发者在实践中进行运用.个人在目前接手的项目.参与的项目或技术交流中,发现 Docker 已经非 ...

  6. 成功案例:Docker企业版为MetLife点燃创新之火

    信息管理是大都会人寿的核心 大都会人寿为50多个国家/地区中超过1亿的客户提供汽车.家庭.牙科.人寿.残疾.视力及健康保险服务.他们的业务高度依赖于信息 - 其中涉及投保人.风险评估.财务及市场数据等 ...

  7. 开发者们,Docker到底是什么,能干什么?

    背景 随着云原生.容器化.微服务.k8s等技术的发展,容器Docker也火了一把,同时也逐渐被软件开发者在实践中进行运用.个人在目前接手的项目.参与的项目或技术交流中,发现Docker已经非常普及. ...

  8. k8s 和 Docker 到底是什么关系?

    作者:Harlan60 blog.csdn.net/yanghaolong/article/details/86680282 最近项目用到kubernetes(以下简称k8s,k和s之间有8个字母). ...

  9. 【Docker】docker到底是个啥,底层原理

    一.总览 Docker说到底其实就是一个启动了多个Linux NameSpace的应用进程,而这个进程能够使用的资源量,则受Cgroups配置的限制. 其中NameSpace技术,通过对新创建的进程等 ...

最新文章

  1. 朴素贝叶斯分类器详解及中文文本舆情分析(附代码实践)
  2. Jquery插件(一) webupload上传插件
  3. 修改mysql的用户密码
  4. Facebook泄露隐私算什么?国内一次外卖,竟让4万用户全“裸着”
  5. Django(四)数据库
  6. Silverlight 3.0 RTW引入-- 鼠标滚动事件
  7. html右下角的广告特效,用jQuery实现网页右下角弹出广告效果
  8. 将图像上雨水去除的四种主流方法
  9. 原生JS零魂之问(上)学习笔记‍
  10. 计算机无线网卡连接网络,无线网络连接不稳定
  11. 笔记本电脑连接HDMI接口拓展显示器没有反应
  12. 解决:Unknown column ‘字段名‘ in ‘field list‘报错
  13. 中国象棋棋盘java_如何用java swing 实现中国象棋的棋盘。棋盘就好。。。
  14. 【WPF学习手记】InkCanvas绘制矩形和椭圆
  15. CP340/CP341基于ASCII驱动协议的多站点轮询
  16. 【zabbix】自定义监控、邮件报警、企业微信报警、钉钉报警(详细)
  17. 键盘数字测试软件,小键盘数字测试
  18. 低门槛DIY示波器,CH32示波器,完全兼容STM32,ADC+DMA+TIM+USB,仅需一块最小系统板
  19. MFS-学习总结(基础概念)
  20. adb删除内置音乐软件教程

热门文章

  1. 数据结构基础知识(2)
  2. Memcached(四)Memcached的CAS协议
  3. 使用Frigga实现WEB方式对服务的监控
  4. 菜鸟学做——三层交换综合模拟实验【1】
  5. 微信公众帐号开发教程第10篇-解析接口中的消息创建时间CreateTime
  6. Git学习系列(三)版本回退和管理文件的修改及删除操作
  7. 2013年度【博客之星评选活动】正在进行中,希望大家支持下,十分感谢!
  8. cassandra学习笔记一
  9. structs 1.x 学习
  10. BZOJ3938 UOJ88:[集训队互测2015]Robot——题解