当前位置: 首页 > 科技观察

Docker到底是什么?为什么这么火!

时间:2023-03-16 23:14:50 科技观察

如果你在数据中心或者云计算IT圈,应该听说过常见的容器,尤其是Docker,一年多了,关于它们的新闻从未间断过。今年6月Docker1.0发布后,势头空前。之所以运动如此之大,是因为许多公司正在以惊人的速度采用Docker。在今年7月的开源大会(OSCon)上,我遇到了无数已经将服务器应用程序从虚拟机(VM)迁移到容器的企业。事实上,Docker负责服务和支持的公司副总裁JamesTurnbull在会上告诉我,三大银行一直在测试版使用Docker,现在正在生产中使用它。对于任何处于早期阶段的技术来说,这是一个非常自信的举动,而且在痴迷于安全的金融界几乎闻所未闻。同时,作为开源技术的Docker,不仅是RedHat、Canonical等Linux巨头的宠儿。微软等专有软件公司也在热情地拥抱Docker。那么,为什么每个人都在追逐容器和Docker?JamesBottomley是Parallels的服务器虚拟化CTO,也是著名的Linux内核开发人员。他向我解释说,Hyper-V、KVM和Xen等管理程序“基于虚拟化硬件仿真。这意味着它们对系统的要求很高。”然而,容器使用共享操作系统。这意味着它们在使用系统资源方面比管理程序更有效。容器不是虚拟化硬件,而是驻留在单个Linux实例上。反过来,这意味着您可以“丢弃99.9%的无用虚拟机垃圾,只剩下一个包含您的应用程序的小巧、整洁的胶囊,”Bottomley说。因此,根据Bottomley的说法,使用经过全面调优的容器系统,您可以在相同硬件上拥有比使用Xen虚拟机或KVM虚拟机多四到六倍的服务器应用程序实例。你不觉得这听起来不错吗?毕竟,您可以让一台服务器运行更多的应用程序。那么为什么以前没有人这样做过呢?事实上,以前有人做过。容器其实是一个古老的概念。容器至少可以追溯到2000年和FreeBSDJails。OracleSolaris有一个类似的概念,称为区域;Parallels、谷歌和Docker等公司一直致力于OpenVZ和LXC(Linux容器)等开源项目,以使容器平稳安全地运行。诚然,很少有人知道容器,但大多数人已经使用了多年。Google有自己的开源容器技术lmctfy(LetMeContainThatForYou,意思是“让我容纳你的程序”)。每当您使用来自Google的东西时:例如搜索、Gmail、GoogleDocks或其他任何东西,都会分配一个新容器。然而,Docker是建立在LXC之上的。与任何容器技术一样,就程序而言,它有自己的文件系统、存储系统、处理器和内存等部分。容器和虚拟机之间的主要区别在于管理程序抽象了整个设备,而容器仅抽象了操作系统内核。这反过来意味着:管理程序可以做而容器不能做的一件事是使用不同的操作系统或内核。因此,例如,您可以使用MicrosoftAzure并同时运行WindowsServer2012实例和SUSELinuxEnterpriseServer实例。至于Docker,所有容器必须使用相同的操作系统和内核。另一方面,如果您只想在尽可能少的硬件上运行尽可能多的服务器应用程序实例,您可能不太关心运行多个操作系统虚拟机。如果您需要同一应用程序的多个副本,那么您会喜欢容器。转向Docker预计每年可为数据中心或云计算服务提供商节省数千万美元的电力和硬件成本。因此,难怪他们争先恐后地尽快采用Docker。Docker带来了几个以前的技术所没有的新特性。首先是Docker使容器部署和使用比以前的方法更容易和更安全。此外,由于Docker与Canonical、Google、RedHat和Parallels等其他容器巨头合作开发其关键开源组件libcontainer,它为容器带来了急需的标准化。同时,开发者可以使用Docker来打包、交付和运行任何应用,应用成为一个轻量级、可移植、自给自足的LXC容器,可以在任何地方运行。正如Bottomley告诉我的那样,“容器为您提供即时的应用程序可移植性。”451Research的高级分析师JayLyman补充说:“组织努力使应用程序和工作负载更容易以高效、标准化和可重复的方式移植和分发,这有时很难实现。观点。正如GitHub通过共享源代码促进协作和创新一样,DockerHub、官方存储库和商业支持正在帮助许多企业通过改进打包、部署和管理应用程序的方式来应对这一挑战。“最后但同样重要的是,Docker容器很容易部署到云端。正如BenLloydPearson在opensource.com上所写:“Docker采用了一种特殊的方法,因此它可以集成到大多数DevOps(开发运营)应用程序中,程序包括Puppet,Chef、Vagrant和Ansible,或者可以单独使用来管理开发环境。主要卖点是它简化了通常由这些其他应用程序执行的许多任务。具体来说,使用Docker,可以设置一个与实时服务器相同的本地开发环境,从不同服务器上的相同测试项目运行多个开发环境(每个都有独特的软件、操作系统和配置),并允许任何人在具有完全相同设置的相同项目,无论本地主机环境如何。“简而言之,Docker能为你做的是:它使更多的应用程序能够在相同的硬件上运行,这比任何其他技术都要多;它使开发人员可以轻松快速地构建准备好运行的容器化应用程序;它极大地简化了管理和部署应用程序的任务。总而言之,我能理解为什么Docker作为一种企业技术突然变得流行起来。我只是希望它不辜负炒作,否则会有一些担心的CEO和CIO。英语:http://www.zdnet.com/what-is-docker-and-why-is-it-so-darn-popular-7000032269/