中国领先的IT技术网站
|
|

2.1.1 Docker的历史

《Docker从入门到实战》第2章Docker简介,第1章已经大致了解了容器技术,在本章节中,我们将进一步认识Docker的架构,以及了解Docker与其他容器技术的区别。本节为大家介绍Docker的历史。

作者:黄靖钧来源:机械工业出版社|2017-10-17 18:14

CTO训练营 | 12月3-5日,深圳,是时候成为优秀的技术管理者了


2.1.1  Docker的历史

2010年,几个年轻人在旧金山成立了一个叫做PaaS平台的公司,起名为dotCloud。什么是PaaS呢?PaaS的全称是Platform as a Service,也就是平台即服务。

传统的软件产品开发过程一般是这样的:

(1)制定产品定位和需求。

(2)制作界面原型。

(3)搭建开发环境和技术栈。

(4)构建基础技术框架和服务。

(5)构建测试环境。

(6)实现产品功能。

(7)迭代开发/测试。

但是如果使用的是PaaS平台,可以直接忽略(3)、(4)、(5)这3个步骤。无论选择哪个技术栈,PaaS都会为你提供相关的配套设置,包括语言环境、运行环境、存储和各种基础服务。

dotCloud就是一个比较完善的PaaS平台。它把需要花费大量时间的手工工作和重复劳动抽象成组件和服务,并放到了云端,还提供了各种监控、警告和控制功能,方便开发者管理和监控自己的产品。

但是事实上开发者对开发环境和开发工具非常敏感并要求极高。PaaS的概念虽好,但是由于认知、理念和技术的局限性,市场的接受度并不高,市场的规模也不够大。此外,IBM、微软、Amazon、Google、VMware等巨头相继进场,可谓强敌林立,在这种情况下,dotCloud可以说举步维艰。

于是dotCloud决定把核心引擎开源,这个基于Linux Container技术的核心管理引擎一经开源立刻引起业界广泛关注。这个容器管理引擎大大降低了容器技术的使用门槛,轻量级、可移植、虚拟化、与语言无关,写了程序放上去做成镜像可以随处部署和运行,开发、测试和生产环境统一了,还能进行资源管控和虚拟化,就连众多巨头们也纷纷表示要接入或支持这个引擎。这个引擎就是Docker,用Go语言写成。

2013年10月dotCloud公司更名为Docker股份有限公司,2014年8月Docker宣布把PaaS的业务dotCloud出售给位于德国柏林的平台即服务提供商cloudControl,使得Docker公司集中更多的精力放到了Docker相关的研发上。

在随后的几年里,Docker快速发展成为了容器领域的“领头羊”。从Docker 1.9.0版本(2015年)开始,执行驱动默认改为libcontainer,这意味着Docker迈向了更广阔的舞台,也为2016年的发展奠定了技术基础。

时间迈入2016年,Docker 1.10.0发布,Docker Engine支持配置热更新,容器与Docker Daemon的耦合性大大降低。该版本Docker还划时代地支持了User namespace与seccomp,安全性极大提高,随着Registry升级,Docker的安全性已经十分接近虚拟机技术。

与此同时,传统的容器管理工具LXC也开始退出Docker的舞台,LXC伴随Docker接近三年的时间,终于被更完善的容器管理方案取代,同时Docker的飞速发展以及追求卓越的野心也一览无余。

Docker 1.11.0的发布,则改变了Docker原来的架构:由原来单一的二进制文件docker,拆分为4个不同的二进制文件构成,即docker、containerd、docker-containerd-shim和docker-runc。从这个版本开始,Docker在用户“毫无知觉”的情况下全面升级,成为首个完全兼容OCI(开放式容器协议)标准的运行时。该版本之后,Docker Engine完全基于runC和containerd。

Docker Engine负责镜像管理,containerd管理容器,包括容器的启动、停止、暂停和销毁。Docker Engine将镜像交付到containerd运行,containerd则使用runC来运行容器。鉴于容器运行时与引擎隔离,Engine能够重启和升级,无须重启容器。

此后又是一个划时代版本Docker 1.12,从这个版本开始,Docker原生支持编排功能,Swarm集群蜕变为SwarmKit,融入Docker Engine,内置负载均衡功能,还实现新的plugin命令来管理各种插件等。

总结Docker四年发展历程,不难发现Docker的野心。第一年专注软件构建,对接构建下游,营造镜像生态,良好的体验很快吸引了大批开发者;第二年瞄准服务容器管理,发布调度平台,打造交付流程,同时收紧了部分功能,加强控制容器市场;第三年大力整合企业资源,完善平台功能,着手应用编排,推出面向企业的Docker Cloud平台;到了第四年,在DevOps理念下,Docker一方面往上原生集成编排,挤掉Kubernetes和Mesos,另一方面往下,迈向OS化,发布libnetwork强化网络管理,排除第三方工具。

更多历史趣闻,读者可以扫描以下二维码继续阅读。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢
24H热文
一周话题
本月最赞

读 书 +更多

ASP网络编程从入门到精通

本书是为那些对Web开发感兴趣的读者而编写的。ASP(Active Server Pages)是微软公司在Web领域的又一次突破,它打破了以往只能由专业人员来...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× Phthon,最神奇好玩的编程语言