vlambda博客
学习文章列表

云原生相关 | Docker公司



本篇文章跟大家介绍云原生领域的代表企业——Docker。文章主要内容主要包括Docker公司发展历程、核心产品和核心理念。




01


发展历程


Docker的前身可以追溯到2008年,前身为DotCloud ,由Solomon Hykes、Kamel Founadi和Sebastien Pahl共同创立,其创业之初的定位在于运用容器技术创建一个人人都可以使用的编程工具。


 Docker的正式诞生则在2010年,DotCloud在这一年获得一个关键性发展:拿到美国著名孵化器Y Combinator的孵化支持,而在随后2010-2013年,DotCloud公司原有业务受阻发展不顺,因而在其内部孵化了Docker,并将其源码开源。


2013年Docker获得显著性发展,Red Hat、Google、Amazon以及DigitalOcean开始与Docker合作在其云服务平台支持Docker。


2014年Docker正式发布Docker 1.0 版本,同时在当年12月发布了Docker Swarm(Docker集群管理工具)和Docker Machine(Docker主机的命令工具)。


2016年Docker宣布成立OPC,其用意在于为业界一起制定开放式、标准化的容器格式和路线。值得一提得是,2016年Docker出现了战略的一个重大失误:放弃了Swarm项目(容器集群管理工具),这也为后来Kubernetes垄断整个容器编排埋下了伏笔。


2017年是Docker发展壮大走向主流的关键一年,Docker开始支持主流操作系统( Linux 、Windows、Mac)和AWS(亚马逊云计算服务)、GCP(谷歌云计算服务)。也是在这一年Docker三分天下:Docker-CE免费版(开源,由Doker公司维护)、Docker-EE商业版(闭源,由Doker公司维护)和Moby(Dokcker上游,开源拆分的docker模块化组件,由社区维护)


2018年Docker公司创始人Solomon Hykes宣布从公司离职,但仍然担任公司董事会成员和主要股东。


如今Docker已经成长为云原生领域独角兽性企业,最新一轮获得Benchmark Capital和Insight Partners 3500万美元的投资,估值突破10亿美金,累计融资2.72亿美金。




02


产品及理念


Docker公司的核心产品为Docker,Dokcer用最简单的话可以理解为创建容器的工具。在理解Docoker之前,需要理解容器和虚拟机的异同点。


容器和虚拟机两者均为虚拟化的技术,在容器技术之前,互联网界虚拟化的代表是虚拟机,通俗的来理解,虚拟机即安装一个软件在电脑上,模拟出多台虚拟的“子电脑”,子电脑与子电脑之间相互隔离、互不干扰,每台电脑上都可以同时加载同一个软件。但是问题也随之而生,由于虚拟机模拟的是大级别的“虚拟子电脑”,这将导致虚拟机技术比较占内存,会影响整个电脑的运行速度,电脑启动时间较慢,集群规模较小。


而容器则在思想上承袭了虚拟机,在技术路线上完善了虚拟机。容器也是一种虚拟化技术,只是更加轻量化,它不需要虚拟整台电脑,而只需要虚拟一个个能够运行代码和程序的容器,这就导致了容器有着虚拟机很多不可比拟的优点:启动更快、集群规模更大、占用空间更小。以下为容器和虚拟机的区别:


云原生相关 | Docker公司


1、三大核心概念


Docker三大核心概念分别是:镜像、容器、仓库。


镜像:从专业角度可以定义为提供容器运行时的程序、库、资源等特殊文件,简单理解即为停止运行时候的容器。镜像由多个叠加层组成,从外部来看是一个独立对象。镜像内部是一个简单的操作系统,同时包含应用运行的文件和包。镜像的拉取需要从镜像仓库中拉取,即从镜像仓库中下载到本地Docker 主机,随后即可运行。


容器:和镜像做对比,容器可以理解为运行中的容器,镜像好像是源文件,Docker需要使用镜像为源,一个镜像可以被反复使用,每次使用就生成一个容器。如果容器被删除了,则容器中的所有改变将丢失。若前文提到的和虚拟机做对比,容器可以理解为轻量化的虚拟技术承载体,更加轻便、高效、反应灵敏。


仓库:储层镜像的地点。安装Docker主机后,本地并不会立马有镜像,镜像从远程镜像仓库服务的仓库中下载。Docker 客户端的镜像仓库服务是可配置的,默认使用 Docker Hub。镜像仓库服务包含多个镜像仓库(Image Repository)。同样,一个镜像仓库中可以包含多个镜像。


2、三大拳头产品


当我们提到Docker一词的时候,除了指Docker公司外,也可能指Docker引擎,还可能指Docker开源项目:Moby 。这即对应Docker公司三个拳头产品:Docker-CE免费版、Docker-EE商业版和Moby。


在先介绍Docker引擎对应的两大拳头产品前,先看看Docker引擎,Docker引擎是运行和编排容器的基础设施工具,Docker公司或者其他云原生公司的产品都是围绕Docker引擎的核心功能进行集成的。Docker 引擎可以从 Docker 网站下载,也可以基于 GitHub 上的源码进行构建。无论是社区开源版本还是商业版本,都有 Linux 和 Windows 版本。


Docker公司的Docker引擎分为两大类产品:面向社区的Docker-CE,这个版本是免费的开源的,每个季度发布一次,提供4个月支持。面向企业的Docker-EE商业版,这个版本是收费的闭源的,也是每个季度发布一次,提供12个月支持。


而Docker公司第三大拳头产品为Moby,其中包含一系列可以从 Docker 官网下载和安装的工具,比如 Docker 服务端和 Docker 客户端。Moby作为开源的项目,其目标是为了发展成为Docker 引擎的上游,社区版Docker-CE要想功能不断更新迭代发展壮大,其内部核心组建要不断走向模块化,而Moby做得就是Docker 引擎核心组建的拆分。


3、底层哲学(理念)


Docker公司推崇的哲学为“Batteries included but removable”,即“含电池,但可拆卸”,这意味着Docker内置的组件是可以替换为第三方的组件,若在激烈的市场竞争中,竞争对手某个局部组件比Docker更优,Docker可以调整为对方的组建,来使得“电池的电量更足、性能更耐用、更好用”


正因如此,Docker公司是一家非常开放的技术公司,与竞争对手“合作中有竞争,竞争中有合作”,能够永远保持动态式发展,不断完善自身,保持强大的生命力,这也是它从小走大走向优秀走向卓越的底层哲学。



云原生相关 | Docker公司



云原生相关 | Docker公司