前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker镜像的核心价值

Docker镜像的核心价值

作者头像
Henry Zhang
发布2019-04-12 15:57:28
9560
发布2019-04-12 15:57:28
举报
文章被收录于专栏:亨利笔记亨利笔记

题图摄于北京中轴线景山:2015第一场雪

最近的几场演讲和技术交流中,有个问题常被问到:既然容器(Container)不是什么新技术,为什么Docker能在短时间内如此风靡世界,得到大家的一致推崇呢?

其实,早在2005年,Sun公司就推出了Solaris Zone,加上Solaris的Resource Management(RM)技术,已经提供了企业级的Container产品。后来出现的Linux namespaces/cgroup基本上与Solaris Zone/RM相当,虽然有LXC等工具,但发布之后也没有大红大紫。Container就象深藏地窖的美酒,一直无人发觉,直到2013年Docker的出现,才真正打开了这个酒坛子,让酒香飘满大街小巷。Docker大行其道的个中原因很多,除了开放技术和云计算普及的大环境外,Docker的一些内在特点是主要原因。

那么Docker带来的核心价值在哪里呢?我们先来看看Docker的含义,除了是公司的名字外,还可指Docker Engine和Docker Registry,分别代表着容器的运行时(runtime)和容器镜像。容器的运行时是依赖Linux的开放API name spaces和cgroup实现的,没有太多隐藏的技术门槛,比较容易开发出来。目前,除了Docker外,还有CoreOS和Pivotal提供容器的运行时。而Docker的容器镜像则不同,它定义了分层的容器封装格式,并提供了镜像的SaaS服务(DockerHub),有成千上万的镜像生成和运行在各种环境中,已经成为事实上的镜像标准。笔者认为,相比可替换的Docker Engine,简单高效的层次镜像格式才是Docker技术的核心所在。下面这张图描述的是Docker容器的生命周期,其中容器镜像的关联箭头最多,不言而喻,镜像技术就是Docker的核心所在。

图片来自Docker网站

业内一些项目的进展似乎也印证了这点。本月初Pivotal 公司发布了企业级PaaS产品PCF v1.6。PCF (Pivotal Cloud Foundry) 是基于开源项目Cloud Foundry的商业版本,在v1.6的新特性里面包括了对Docker容器镜像的支持,用户只要把应用封装在Docker镜像里面,就可以和Buildpack等其他运行时一样在PCF的平台上运行了。需要指出的是,PCF支持的仅是Docker镜像,不是Docker Engine。用户的Docker镜像被挂载到Cloud Foundry自有的容器引擎Garden里,由Garden来运行应用。这里丝毫没有Docker Engine的影子,所以准确的说,PCF应该是“兼容”Docker镜像。

图片来自Pivotal网站

CloudFoundry的容器引擎原来称为Warden,后用Go语言替换Ruby重写后称为Garden。Warden作为Cloud Foundry的一部分,研发和开源时间略早于Docker,但由于缺乏有效的镜像管理方式,加之被埋没在CF项目中毫不显眼,使其被Docker后来居上,最终错失了一统江湖的大好机遇。

虚机化容器是另一种不用Docker Engine而直接使用(兼容)Docker镜像的方式。这类项目包括VMware的vSphere Integrated Containers (Project Bonneville),国内创业公司的Hyper和Intel的Clear Containers。尽管这些项目的实现方式不尽相同,但原理却是共通的:用极简的操作系统内核(约20MB)来启动虚拟机,然后挂接Docker image到虚拟机里面的文件系统,再运行容器封装的应用(下图)。这样做的好处是用虚拟机解决了容器固有的安全性缺陷,又获得与容器近似的启动时间和便捷性,因此虚机化容器在多租户公有云和企业用户中有很大的潜力。这些项目摆脱了Docker Engine甚至Linux Container,直接使用Docker镜像,再次诠释了Docker镜像才是大家的真爱。(关于Project Bonneville可参考文后链接)

回到文首的问题,Solaris Zone虽有强大的ZFS作为container的文件系统,但是缺乏打包和移植容器的有效手段,大大制约其应用范围。Docker能够大获成功,封装应用的镜像格式和配套的SaaS - DockerHub居功至伟。想想Docker的口号:“Build, Ship and Run”,难道不是“Build Images, Ship Images, and Run Images”的缩略语吗?Docker Image实质上获得了容器镜像标准的地位,接下来围绕镜像的各类服务和工具自然成为兵家必争之地。例如Registry服务,除了Docker自家的DockerHub和Docker Trusted Registry产品外,还有Google, CoreOS, AWS, Artifactory等众多竞争对手。大多数面向容器的云服务平台,或多或少都需要对Docker Registry做定制化,Docker镜像解析也是必备的基本能力。容器镜像标准的确立是件好事,就象当初HTTP规范制定后,涌现出许多不同的浏览器和Web服务器一样,势必引领出百花齐放、百家争鸣的新格局,让我们拭目以待吧。

本文已开通评论,欢迎反馈讨论。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-11-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 亨利笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档