Docker与Kubernetes容器虚拟化技术与应用
上QQ阅读APP看书,第一时间看更新

1.3.2 容器造就了Docker

关于容器是否是Docker的核心技术,业界一直存在争议。有人认为Docker的核心技术是对分层镜像的创新使用,还有人认为其核心是统一了应用的打包分发和部署方式,为服务器级别的“应用商店”提供了可能,而这将会是颠覆传统行业的举措。

事实上,这一系列创新并不依赖于容器技术,基于传统的Hypervisor也可以做到,业界也由此诞生了一些开源项目,如Hyper、Clear Linux等。

另外,Docker官方对Docker核心功能的描述“Build,Ship and Run”中也没有体现与容器强相关的内容。

尽管如此,容器仍然是Docker的核心技术之一。

首先从Docker的诞生历史上来看,它主要是为了完善当时的容器项目LXC,让用户可以更方便地使用容器,让容器可以更好地应用到项目开发和部署的各个流程中。从一开始,LXC就是Docker上的唯一容器引擎也可以看出这一点,因此,可以说Docker就是为容器而生的。

另外,更重要的一点是,同Docker一起发展、众所周知的一个名为“微服务”(micro service)的设计哲学有关,而这会把容器的优势发挥得淋漓尽致。容器作为Linux平台的轻量级虚拟化,其核心优势是与内核的无缝融合,其在运行效率上的优势和极小的系统开销,与需要将各个组件单独部署的微服务应用完美融合。

而且微服务在隔离性问题上更加可控,这也避免了容器相对传统虚拟化在隔离性上的短板。所以,未来在微服务的设计哲学下,容器必将与Docker一起得到更加广泛的应用和发展。

在理解了容器、容器的核心技术Cgroup和Namespace,以及容器技术如何巧妙且轻量地实现“容器”本身的资源控制和访问隔离后,就会明白Docker和容器其实是一种完美的融合和相辅相成的关系,它们不是唯一的搭配,但一定是最完美的组合。

与其说是容器造就了Docker,不如说是它们造就了彼此,容器技术让Docker得到更多的应用和推广,Docker也使容器技术被更多人熟知。在未来,它们也一定会彼此促进,共同发展,在全新的解决方案和生态系统中扮演重要角色。