Docker 发展历史

docker logo

很久以前

2008年,Solomon Hykes 和他的朋友 Kamel Founadi、Sebastien Pahl 共同创立了一家名为 DotCloud 的公司,目标是利用一种叫做容器的技术来创建他们称作是“大规模的创新工具”:任何人都可以使用的编程工具。

2010年,DotCloud 获得了创业孵化器 Y Combinator 的支持,并开始吸引到一些真正的投资,在接下来的3年中,dotCloud 内部孵化了一款名为 Docker 的产品。

2013年

2013年3月 Docker 创始人 Solomon Hykes 在 PyCon 大会上的演讲中首次公开介绍了 Docker 这一产品。在2013年 PyCon 大会之后,Docker 的 “创新式镜像格式” 以及 “容器运行时” 迅速成为社区、客户和更广泛行业的实际标准和基石。Docker 的强大之处在于它通过可移植的形式和易于使用的工具在应用程序和基础设施之间创造了独立性。其结果是,Docker 将容器技术大众化,并解决了困扰数百万开发人员的 “matrix from hell” 问题,使容器技术成为主流。

2013年3月20日,DotCloud 发布了 Docker 的首个版本,并将 Docker 源码进行开源,开源地址

2013年9月,红帽公司成为 Docker 的主要合作伙伴,利用 Docker 来驱动他的 OpenShift 云业务。随后,谷歌、亚马逊以及 DigitalOcean 也迅速的在其云服务平台提供了 Docker 的支持。主流云厂商的加入,加速 Docker 的发展进度。

随着 Docker 技术的开源,此项技术能够将 Linux 容器中的应用代码打包并轻松的在服务器之间迁移,Docker 技术瞬时的风靡了全球,2013年底公司名称由 “DotCloud Inc” 更改为 “Docker Inc”,并全力的主攻到 Docker 项目开发中。

2014年

2014年6月的 DockerCon 大会上 Docker 正式发布了 Docker 1.0 版本。这也意味着Docker的稳定性和可靠性已经基本满足了生产环境的运行需求。会议上同时发布 Docker Image 的镜像仓库 Docker Hub,并指出已经有超过14,000个 Docker 化的应用存储在他们的 “public registry” 中。

也是同样的2014年6月,基于谷歌内部强大的 Borg 系统而开发出来的 kubernetes 横空出世,刷新了人们对容器的理解。

k8s logo

2014年8月份,Docker Inc 宣布将用于 PaaS 业务服务的 DotCloud 软件出售给德国柏林的 PaaS 服务厂商 CloudControl,自此以后,DotCloud 正式的和 Docker 分道扬镳了。

2014年12月举行的 DockerConEU 大会上,Docker Swarm 和 Docker Machine 同时面世。Docker Swarm 是一个 Docker 集群管理工具,而 Docker Machine 是部署 Docker 主机的命令工具。

2014年12月里,CoreOS 宣布开发自家的容器运行环境 rkt 以及 appc 容器规范。

2015年

容器技术不只有 Docker,很早之前 Google 就投资了 CoreOS 来做竞争的容器 – Rocket。那时是三家鼎立:Docker/Rocket/Warden,为了避免惨烈的竞争,大家终于统一意见,决定成立固定的标准来良好发展容器技术。

2015年6月,由 Docker、IBM、微软、红帽及 Google 等厂商所组成的开放容器项目 OCP 联盟成立,该项目旨在建立软件容器的通用标准。OCP 成立于 Linux 基金会之下,其使命是使用户和公司能够继续创新和开发基于容器的解决方案,并充满信心地保护其先前的开发工作,并且不会造成行业分散。作为该计划的一部分,Docker 将捐赠其软件容器格式,运行时以及相关规范的代码。应用容器规范(”appc”)计划的领导者,包括创始成员 CoreOS,也将把他们的技术领导力和支持带到 OCP。

2015年,Docker 发布了 runC 工具,runC 是根据 OCI 标准生成的一个 cli 工具,一个轻量级的跨平台的容器运行时命令行小工具,可以直接利用 libcontainer 运行容器,而无需通过 docker engine。runC 的目标是使标准容器在任何地方都可用。

2016年

2016年6月的 DockerCon 上,Docker 宣布了 Open Container Initiative 的正式成立,简称 OCI 。OCI 意在业界一起合作,开发一个开放的、标准的容器格式和 Runtime。OCI 也属于 Linux 基金会的协作项目,一直秉承着开放的模式来管理,其 Roadmap 在GitHub。

OCI的Logo

2016年,OCI 标准制定后,Docker 将 Containerd 独立拆分,并将其捐赠给了社区。将这个组件分解为一个单独的项目,使得 Docker 将容器的管理功能移出 Docker 的核心引擎并移入一个单独的守护进程(即 Containerd)。

在2016年,人们认识到容器技术本身的价值是在于容器的编排,而此时的 Docker 项目令人惊讶的放弃了 Swarm 项目,而是想将容器的编排和集群的管理功能添加到 Docker 项目当中。而 Kubernetes 却与 Docker 不同的是推进民主化架构,使得通过暴露 Kubernetes API 的方法,让更多的人来不断丰富 kubernetes 的插件。

2017年

从2013年3月开始推出 0.1.0 版本,到2017年2月 1.13 的版本都采用 x.x 的形式。从2017年第一季度开始,Docker 版本号遵循 YY.MM-xx 格式。

2017年是容器成为主流技术的一年,这就是为什么 Docker 在 Linux 之外支持众多平台的原因(Docker for Mac,Docker for Windows,Docker for AWS,GCP 等)。

2017 年于 Austin 举办的 DockerCon 上开源 Docker 项目正式命名为 Moby 项目。由于这次改名,GitHub 上的 docker/docker 库也被转移到了 moby/moby,并且拥有了项目自己的 Logo。

moby的logo

于此同时,Docker Inc 公司将 Docker 本身拆分为 Docker-CE 免费版和 Docker-EE 商业版:

  • Docker-CE目前是 Docker 公司维护的开源项目,是一个基于 Moby 项目的免费的容器软件产品。
  • Docker-EE目前是 Docker 公司维护的闭源项目,是 Docker 公司的商业软件产品。

至此,容器天下三分。其中 Moby 由社区维护,Docker-CE 由 Docker 公司维护,Docker-EE 是 Docker 公司闭源的商业产品。

2018年

2018年3月 Docker 公司创始人 Solomon Hykes 在 Docker 博客 宣布已正式从 Docker 公司离职,不再担任公司的日常运作工作。Solomon Hykes 表示,他未来的身份将是 Docker 的董事会成员、主要股东,以及 Docker 维护者,但不再负责担任公司的日常工作。

2019年及未来

2019年容器市场基本趋于稳定,一切都向着优化改进方向发展。Docker 公司是底层容器引擎及运行时的。容器的编排进过几轮的激烈竞争,基本是 GOOGLE 的 Kubernetes 一家独大。

新的战斗已经由容器和编排的战场,逐渐迁移到应用领域。云原生 CNCF 将引领新的技术方向,微服务、ServcieMesh、Envoy、ServerLess 等正在路上

愿前行的路上有你的足迹

参考

  • https://blog.csdn.net/thollych/article/details/102717701
  • http://c.biancheng.net/view/3118.html
  • https://www.linuxidc.com/Linux/2018-09/153977.htm
  • https://www.opencontainers.org/news