每一场革命背后都有着深刻的历史背景和矛盾冲突,新陈代谢是历史的必然结果,新生取代陈旧得益于理念的飞跃和对时代发展需求的契合,很显然Docker抓住了这个契机。 Docker是什么? 根据官方的定义,Docker是以Docker容器为资源分割和调度的基本单位,封装整个软件运行时环境,为开发者和系统管理员设计的,用于构建、发布和运行分布式应用的平台。它是一个跨平台、可移植并且简单易用的容器解决方案。Docker的源代码托管在GitHub上,基于Go语言开发并遵从Apache 2.0协议。Docker可在容器内部快速自动化地部署应用,并通过操作系统内核技术(namespaces、cgroups等)为容器提供资源隔离与安全保障。 我们应该看看Docker的发展历程。 每一个传奇都需要一个这样的开头,很久很久以前:Docker项目由Solomon Hykes所带领的团队发起,在Docker公司的前身dotCloud内部启动孕育,代码托管于GitHub。 2013年3月:Docker正式发布开源版本,GitHub中Docker代码提交盛况空前,风头之劲一时无两。见图1-2。 图1-2 GitHub上Docker项目提交数统计图 2013年11月:REHL 6.5正式版发布,集成了对Docker的支持,拉开了业界各大厂商竞相支持Docker的序幕。 2014年4月到6月:云技术市场上的三大巨头Amazon、Google及MicroSoft Azure相继宣布支持Docker,并着手开发基于容器的全新产品。 2014年6月:DockerCon 2014大会召开,会上来自Google、IBM、Amazon、Red Hat、Facebook及Twitter等全球领先企业的演讲嘉宾组成了豪华的阵容。此时, Docker自开源版本后又经历了15个月左右的飞速发展,Docker 1.0版本正式发布。 2014年8月:VMware宣布与Docker建立合作关系,标志了虚拟化市场形成了新的格局。 2014年10月:微软宣布将整合Docker进入下一代的Windows Server中。 2014年10月15日:Azure和Docker共同举办了Docker全球开发者大会,并宣布双方建立战略合作伙伴关系。 2014年底:Google率先发布容器引擎Google Container Engine(GCE),整合了Docker、Google自有容器技术和在DockerCon 2014大会上发布的Kubernetes,致力于为用户提供面向Docker化应用的云计算平台;Amazon发布EC2 Container Service(ECS),它是一项高度可扩展、高性能、免费的容器管理服务,并能够在托管的Amazon EC2实例集群上轻松地发布、管理和扩展Docker容器,使得Amazon Web Services(AWS)用户能够使用AWS上的容器轻松地运行和管理分布式应用。 2015年4月:Docker公司宣布完成了9500万美元的D轮融资。此前,他们已完成三轮融资,包括1500万美元的B轮融资及4000万美元的C轮融资。 截至2015年5月:GitHub中Docker的贡献者多达近千人,被关注和喜爱(Star)多达两万一千余次(相比之下,此时Linux源码多年来积累的被关注次数为两万两千余次),并有近五千多个开发分支(Fork),Docker成为了GitHub上排名前20的明星项目。 Docker官方存储应用镜像的镜像仓库也获得了大量开发者支持,其镜像仓库里已有四万五千余个不同应用功能的公共镜像。最受欢迎的Ubuntu、MySQL、nginx、WordPress镜像,下载量已达到三四百万次。这些数字还在不断地增长! 在国内一线城市,几乎每一两周就有一场关于Docker的讨论大会,Docker永远不会让你孤独。 从此以后的未来,Docker已经给云计算带来了深远的影响,这是一次真正的计算机技术革命,来吧,拥抱变化! 一个软件项目的成功常常需要依托其衍生的生态系统,围绕或基于核心技术而构建的相关项目日臻丰富和完善,软件本身的功能和易用性也随之增加,Docker的迅猛发展与其强大的生态系统息息相关。首先我们从图1-3中整体上来审视一下它 。 如图1-3所示,围绕Docker的生态系统自下而上分别覆盖了IaaS层和PaaS层所涉及的各类问题,包括资源调度、编排、部署、配置管理、网络管理、应用开发和部署平台、应用开发工具、应用服务供应以及大数据分析等云计算相关的服务。除了基于Docker技术解决构建分布式平台无法回避的经典问题,Docker及其生态系统主要带来了以下几点好处。 持续部署与测试。Docker消除了线上线下的环境差异,保证了应用生命周期的环境一致性和标准化。开发人员使用镜像实现标准开发环境的构建,开发完成后通过封装着完整环境和应用的镜像进行迁移,由此,测试和运维人员可以直接部署软件镜像来进行测试和发布,大大简化了持续集成、测试和发布的过程。 跨云平台支持。Docker带来的最大好处之一就是其适配性,越来越多的云平台都支持Docker,用户再也无需担心受到云平台的捆绑,同时也让应用多平台混合部署成为可能。目前支持Docker的IaaS云平台包括但不限于亚马逊云平台(AWS)、Google云平台(GCP)、微软云平台(Azure)、OpenStack等,还包括如Chef、Puppet、Ansible等配置管理工具。 图1-3 Docker生态系统 环境标准化和版本控制。基于Docker提供的环境一致性和标准化,你可以使用Git等工具对Docker镜像进行版本控制,相比基于代码的版本控制来说,你还能够对整个应用运行环境实现版本控制,一旦出现故障可以快速回滚。相比以前的虚拟机镜像,Docker压缩和备份速度更快,镜像启动也像启动一个普通进程一样快速。 高资源利用率与隔离。Docker容器没有管理程序的额外开销,与底层共享操作系统,性能更加优良,系统负载更低,在同等条件下可以运行更多的应用实例,可以更充分地利用系统资源。同时,Docker拥有不错的资源隔离与限制能力,可以精确地对应用分配CPU、内存等资源,保证了应用间不会相互影响。 容器跨平台性与镜像。Linux容器虽然早在Linux 2.6版本内核已经存在,但是缺少容器的跨平台性,难以推广。Docker在原有Linux容器的基础上进行大胆革新,为容器设定了一整套标准化的配置方法,将应用及其依赖的运行环境打包成镜像,真正实现了“构建一次,到处运行”的理念,大大提高了容器的跨平台性。 易于理解且易用。Docker的英文原意是处理集装箱的码头工人,标志是鲸鱼运送一大堆集装箱,集装箱就是容器,生动好记,易于理解。一个开发者可以在15分钟之内入门Docker并进行安装和部署,这是容器使用史上的一次飞跃。因为它的易用性,有更多的人开始关注容器技术,加速了容器标准化的步伐。 应用镜像仓库。Docker官方构建了一个镜像仓库,组织和管理形式类似于GitHub,其上已累积了成千上万的镜像。因为Docker的跨平台适配性,相当于为用户提供了一个非常有用的应用商店,所有人都可以自由地下载微服务组件,这为开发者提供了巨大便利。
Docker——容器与容器云——1.2 容器,新的革命
书名: Docker——容器与容器云
作者: 浙江大学SEL实验室
出版社: 人民邮电出版社
出版年: 2015-9-1
页数: 404
定价: 89.00元
装帧: 平装
ISBN: 9787115401106