一年的时间,使一个围绕着Docker的小型初创企业生态体系逐渐形成。Docker先后赢得了Google、微软、Amazon、VMware等巨头的青睐,巨头们纷纷示意将保证自己平台与Docker容器技术的兼容性。微软还宣布来要推出面向Windows的Docker客户端。
到了2014年9月,Docker完成4000万美元的C轮融资,彼时市值与约为4亿美元。可以说Docker一路风生水起,迅速赢得了IT圈的信赖。并且在8月12Docker发布了Docker1.8正式版(下载地址见末尾)。
但Docker是如何做到这些的呢?Docker的成功之路能否被复制呢?
【二】如何定义Docker?
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。
Docker是一个重新定义了程序开发测试、交付和部署过程的开放平台,Docker则可以称为构建一次,到处运行,这就是Docker提出的"Build once,Run anywhere"
Docker:Build once,Run anywhere
为了更好的认识Docker,我们先来了解几个必备词汇:镜像,容器和仓库。
1、镜像(image):Docker 镜像就是一个只读的模板,镜像可以用来创建 Docker 容器。Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。
镜像是一种文件结构。Dockerfile中的每条命令都会在文件系统中创建一个新的层次结构,文件系统在这些层次上构建起来,镜像就构建于这些联合的文件系统之上。
Docker官方网站专门有一个页面来存储所有可用的镜像,网址是:index.docker.io。
2、容器( Container):容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux 环境,Docker 利用容器来运行应用。
3、仓库:仓库是集中存放镜像文件的场所,仓库注册服务器(Registry)上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。目前,最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。
Docker仓库用来保存我们的images,当我们创建了自己的image之后我们就可以使用push命令将它上传到公有或者私有仓库,这样下次要在另外一台机器上使用这个image时候,只需要从仓库上pull下来就可以了。
Docker的运行离不开这几位的支持,Docker的成功也是拜几位所赐。也有人会误以为,Docker就是容器。但Docker只会傲娇地说:我不是容器,我是管理容器的引擎。
Docker中文手册上解释说:Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。
从这里我们可以看出,Docker并非是容器,而是管理容器的引擎。Docker为应用打包、部署的平台,而非单纯的虚拟化技术。