《Docker入门白皮书》中关村在线【一】从dotCloud到Docker——低调奢华有内涵.................................................21、追根溯源:dotCloud..........................................................................................................22、Docker出世:从Docker0.1到Docker1.0...................................................................2【二】如何定义Docker?..........................................................................................................41、镜像..........................................................................................................................................52、容器..........................................................................................................................................53、仓库..........................................................................................................................................5【三】Docker与虚拟化争锋....................................................................................................6【四】Docker:我为什么与众不同........................................................................................81、简化程序.................................................................................................................................92、避免选择恐惧症.....................................................................................................................93、节省开支.................................................................................................................................9【五】统一标准,建立更有活力的生态系统.......................................................................10【六】企业对Docker是否认可?安全是关键!................................................................111、命名空间(Namespace)................................................................................................122、Docker程序本身的抗攻击性...........................................................................................123、加固内核安全性...................................................................................................................12【七】评说Docker...................................................................................................................14附录一、Docker基本命令....................................................................................................15附录二、Docker最新版(1.8)下载地址:.......................................................................182写在前面:放在两年前,你不认识Docker情有可原。但如果现在你还这么说,不好意思,我只能说你OUT了。你最好马上get起来,因为有可能你们公司很快就会引入Docker。今天就和大家讨论讨论这个备受好评的应用,让我们来揭开他的真面目!【一】从dotCloud到Docker——低调奢华有内涵1、追根溯源:dotCloud时间倒回到两年前,有一个名不见经传的小公司,他的名字叫做:dotCloud。dotCloud公司主要提供的是基于PaaS(PlatformasaService,平台及服务)平台为开发者或开发商提供技术服务,并提供的开发工具和技术框架。初创企业总是艰难的,dotCloud也是一样。在IBM,亚马逊,谷歌等大公司的挤压下,dotCloud举步维艰。即使2011年拿到了1000万美元的融资,可和上述大公司比起来,也不过是杯水车薪。随着开源的洪流袭来,在2013年dotCloud的创始人,28岁的SolomonHykes做了一个艰难的决定:将dotCloud的核心引擎开源!然而一旦这个基于LXC(LinuxContainer)技术的核心管理引擎开源,dotCloud公司就相当于走上了一条不归路。可正是这个孤注一掷的举动,却带来了全球技术人员的热潮,众程序员惊呼:太方便了,太方便了。也正是这个决定,让所有的IT巨头也为之一颤。一个新的公司也随之出世,它就是:Docker。2、Docker出世:从Docker0.1到Docker1.0一个春秋,跨越了Docker的成名路。在互联网时代,一夜成名早已不是什么新闻。Docker这个技术公司,向我们证明了,成为一个国际巨星,只需要一个月。2013年2月决定开源,到20133年3月20日发布Docker0.1,只用了一个月的时间。今后几乎每个一个月,Docker都会发布一个版本。而Docker0.1的发布像是一个宣言,昭示着一个Docker正在以一个新兴容器领导者的姿态迈进。正如我们所知,从Docker0.1到Docker1.0,15个月的时间,Docker迅速成长。在2014年6月9日,Docker团队宣布发布Docker1.0版。Docker1.0下载地址:http://blog.Docker.com/2014/06/its-here-Docker-1-0/。2014年6月9日,1.0版本发布官方声明1.0版本标志着Docker公司认为Docker平台已经足够成熟,并可以被应用到产品中(还提供了一些需要付费的支持选项)。在这15个月中,Docker共收到了超过460位贡献者的8741条改进建议,4Docker的用心经营下社区十分活跃。可以说,Docker的成功起于开源,发于社区。一年的时间,使一个围绕着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提出的“Buildonce,Runanywhere”Docker:Buildonce,Runanywhere5为了更好的认识Docker,我们先来了解几个必备词汇:镜像,容器和仓库。1、镜像:文件的层次结构,以及包含如何运行容器的元数据,Dockerfile中的每条命令都会在文件系统中创建一个新的层次结构,文件系统在这些层次上构建起来,镜像就构建于这些联合的文件系统之上。Docker镜像就是一个只读的模板,镜像可以用来创建Docker容器。Docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。2、容器:容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的Linux环境,Docker利用容器来运行应用。3、仓库:仓库是集中存放镜像文件的场所,仓库注册服务器(Registry)上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。目前,最大的公开仓库是DockerHub,存放了数量庞大的镜像供用户下载。Docker仓库用来保存我们的images,当我们创建了自己的image之后我们就可以使用push命令将它上传到公有或者私有仓库,这样下次要在另外一台机器上使用这个image时候,只需要从仓库上pull下来就可以了。Docker的运行离不开这几位的支持,Docker的成功也是拜几位所赐。也有人会误以为,Docker就是容器。但Docker只会傲娇地说:我不是容器,我是管理容器的引擎。6什么是DockerDocker中文手册上解释说:Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、baremetal、OpenStack集群和其他的基础应用平台。从这里我们可以看出,Docker并非是容器,而是管理容器的引擎。Docker为应用打包、部署的平台,而非单纯的虚拟化技术。【三】Docker与虚拟化争锋容器