Docker想要让容器而不是操作系统成为数据中心系统运行的基本构建模块。这家公司近日推出了两个新的开源项目,以便系统组装商使用Docker和第三方组件,自行组建基于容器的模块化系统。
Docker的 IT负责人帕特里克·查尼森(Patrick Chanezon)在接受The New Stack的采访时表示:“为了可以充分利用我们整个生态系统汇集起来的所有创新成果,我们需要开始在组装层面进行合作。”该公司在本周于奥斯汀举行的年度用户大会Dockercon上展示了这些工具。
一个名为LinuxKit的项目是一套工具包,用于为容器组装操作系统。第二个项目名叫Moby项目,它为可互换组件方面的合作奠定了基础,让第三方可以利用组件库和参考蓝图,构建基于容器的系统。
LinuxKit提供了一种基于容器的方法来为每种类型的容器构建一种定制的、精简的Linux子系统,这对于希望为专门的硬件或部件组装自己选择的Linux功能特性的系统组装商来说可能很有用。基于containerd,每个LinuxKit子系统都会有各自的Linux内核,每个系统守护程序或系统服务都得到各自的容器。
子系统一旦打包成ISO映像文件,就可以在裸机上启动,或在虚拟化环境中启动。Docker将负责维护作为其自己的Docker解决方案一部分来使用的所有Linux子系统组件。
“Linux是Docker的一个组件”―――帕特里克·查尼森
容器可以为运行数据中心的所有操作提供一个自然而灵活的基础,因为容器允许用户轻松组装各组件,另外尽量减少对操作系统的依赖程度,尽管拥有随之而来的种种安全漏洞。通过将操作系统精简至只剩下所需的组件,Docker本身已将自己的容器操作系统精简至比较小的系统:大小在35Mb到100Mb之间。
查尼森说:“我们的许多客户要求我们并不仅限于Linux。Linux是Docker的一个组件。借助LinuxKit,我们让你可以以一种安全、可移植的方式来组装该组件。”
Docker本身就已经在使用LinuxKit中的技术,为Docker桌面(Docker Desktop)和云企业版(Cloud Enterprise Edition)SKU构建定制的操作系统。为了做好这项工作,Docker已与Linux基金会合作,并得到了ARM、IBM、英特尔和微软的大力支持。
比如说,英特尔可以使用LinuxKit,在其自己的用芯片保护的Clear Containers技术上构建基于容器的系统。HPE可以使用这项技术,为其自己的硬件构建定制的容器化系统。
叫我以实玛利
Moby项目旨在对基于组装方法的系统日益笨拙的过程进行一番规范,这个过程通常涉及来自Docker和第三方提供商的多个组件。
查尼森说,Moby“是自最初的Docker问世以来Docker推出的最重要的开源项目。”
该公司在2014年左右开始将其系统的各部分(比如Notary)实行组件化,正是这项工作孕育了后来的Moby。Docker开发人员“需要组装不同配置的组件,所以我们总是试图充分利用或重复使用我们已有的任何资源,”查尼森如是说。
Moby将为容器厂商和服务提供商提供一种框架、某种共同的协作平台,并且提供一套通用的工具和最佳实践,用于构建和增强基于容器的系统,涵盖诸如监控、编排、联网之类的方方面面。
到目前为止,Docker已经拥有80多个容器化组件组成的庞大库,包括Swarm、containerd、Docker Build,甚至LinuxKit。许多第三方组件现在被整合到Linux发行版中。Docker欢迎社区成员作出更多的贡献。
物联网设备的组装商可能需要与构建数据中心系统的公司大不一样的一套组件。有了Moby,双方都可以共享共同的组件,还可以灵活地将各自的组件连入到一个共同的组合体中。
他说:“有很多人进入到容器生态系统,不仅仅局限于在云端运行云原生应用程序:比如物联网、台式机和许许多多不同的环境。”
Docker正在将自己的所有组件打包成容器,还会提供一个参考组合件,这个组合件将基于Docker社区版。Moby工具本身可用于组装来自不同组件的项目。
组合起来,这些项目旨在将Docker容器当作运行容器化应用程序的诸多技术组成的更庞大集合体的一部分,这个集合体不仅依赖Docker本身,同样依赖第三方提供商。Docker认为,构建系统方面拥有共同基础可以帮助系统组装商加快增添新功能方面的工作。
监测公司Datadog最近对10000个用户开展了一项调查,结果发现,18.8%的用户已经采用了Docker,这比一年前增长了40%,当时还只有13.6%。可能更令人惊讶的是,一旦采用了Docker,Docker用户在10个月内将生产环境里面运行的容器数量平均增加至五倍。而这个成功现象扩大到了Docker工具的第三方提供商。Datadog还发现,40%的Docker用户正在部署某种外部编排工具,比如Kubernetes或Amazon ECS。
据该公司声称,到目前为止,Docker组件(包括container、Swarm、libcontainer及其他部分)的下载量已超过了120亿人次。