Docker技术的实现资料下载.pdf
《Docker技术的实现资料下载.pdf》由会员分享,可在线阅读,更多相关《Docker技术的实现资料下载.pdf(4页珍藏版)》请在冰豆网上搜索。
基于软件的虚拟化分为应用虚拟化和平台虚拟化。
虚拟机(VirtualMachine,VM)技术属于平台虚拟化。
应用虚拟化可细分为完全虚拟化、硬件辅助虚拟化、部分虚拟化、超虚拟化、操作系统级虚拟化。
Docker属于操作系统级的虚拟化。
2Docker技术剖析Docker是PaaS提供商dotCloud开源的一个基于LXC的高级容器引擎,基于go语言并遵从Apache2.0协议6。
目前,已经有很多相关项目,逐渐形成了Docker生态圈。
Docker自2013年发布以来,就成为了炙手可热的PaaS项目。
Redhat7、Google8、IBM9、百度10、阿里巴巴11等都相继集成了对Docker的支持。
Docker的最终目的是实现“build、shipandrunanyapp、anywhere”,即通过对应用组件的封装(Packaging)、分发、部署、运行等生命周期的管理,达到应用组件级别的“一次封装,随处运行”。
应用组件包括Web应用、数据库服务、操作系统或编译器。
2.1Docker体系机构Docker是一个客户/服务器(Client/Server,CS)架构(见图1)。
Docker客户端是远程控制器,可通过TCP/REST向DockerHost发送请求,包括创建容器、运行容器、保存容器、删除容器等请求。
Docker服务端的Daemon对客户端的请求进行相应的管理,随Docker技术实现分析陈清金1陈存香1张岩21中国联通云数据有限公司北京1000322中国联合网络通信有限公司北京100033摘要云计算的多样化应用需求赋予了PaaS快速发展的空间。
作为PaaS热度最高的技术之一,Docker还有很多待研究的方面。
文章首先分析Docker的核心点体系架构、关键要素和主要优势。
进而比较两大PaaS平台核心技术虚拟机和Docker,最后结合Docker的实现,分析OpenStack与Docker的集成策略。
关键词平台即服务;
Docker;
虚拟化;
Openstack系统与方案Systems&
Solutions38后通过driver转发至容器中的libcontainer执行环境。
libcontainer提供与不同Linux内核隔离的接口,类似命名空间及控制组。
这种架构允许多个容器在共享同一个Linux内核的情况下完全隔离地运行。
由于Docker容器并不需要专用操作系统,因此,实现了轻量级的要求。
?
图1Docker体系架构2.2Docker关键要素Docker的核心要素有镜像(Image)、容器(Container)和仓库(Registry)。
镜像是一个面向Docker引擎的只读模板,包含文件系统,它是构建容器的基础。
一个镜像中可以包含完整的操作系统及相应的应用软件。
用户可以根据需求自己创建或者下载他人创建的镜像。
容器是从镜像创建的运行实例。
镜像可以理解为构建或打包阶段,而容器可理解为启动或执行阶段。
Registry用来保存用户创建的镜像。
镜像来源主要有用户定制和Docker自有两种,前者称为私有Registry,后者称为公共Registry,也叫做DockerHub。
2.3Docker优势Docker虚拟化的主要优势有4个方面。
1)简化服务器迁移带来的环境再部署,提高工作效率,并降低部署过程中出现问题的风险系数。
2)缩短环境交付和部署的周期。
使用Docker,开发人员可通过镜像快速部署开发环境,并能在开发结束后,平滑移交给运维和测试人员。
同时,容器的维护相对简单快捷,节约开发、测试、部署时间,可实现快速迭代。
3)提高物理资源的利用率。
由于Docker容器所占的存储空间相对较小,同时删除容器后,相应的文件也会被删除,这样可大大提高物理资源的使用率。
4)更简单快捷的迭代策略。
Dockersfile实现了开发环境中的配置更新可快速反馈到生产环境中,实现了自动化的高效管理。
3Docker和VM分析比较从上述Docker分析中可以发现VM和Docker存在一定的差异,下面对两者之间的技术实现和性能进行对比分析。
3.1VM和Docker技术实现分析Docker中容器停止后,对创建容器时镜像的初始状态所做的操作都会丢失。
虚拟机停止后,大部分文件(除去部分临时文件)不会被删除。
这就使得虚拟机所占的存储空间远远大于Docker。
Docker可采用标准的IPC机制进行通信,如隧道、Sockets等,虚拟机只能通过以太网的方式进行通信。
Docker可直接运行于宿主机的内核上,不同容器可以共享同一个Linux内核,虚拟机则需要运行于Hypervisor之上(见图2)。
图2(a)基于VM虚拟化图2(b)基于Docker虚拟化图2VM与Docker虚拟化实现方式对比3.2VM和Docker性能分析作为一种轻量级的虚拟化方式,Docker在性能上还是略优于VM的,具体的性能分析比较见表1。
表1Docker与虚拟机性能对比特性Docker虚拟机启动速度秒级分钟级硬盘使用一般为MB一般为GB性能接近宿主机本地进程弱于宿主机并发性单机支持上千个容器一般几十个资源利用率高低隔离性安全隔离安全隔离安全性依赖于Hypervisor可强制访问控制系统与方案Systems&
Solutions39从表1中的分析比较可以明显发现,利用Docker技术,物理服务器可以承载更多的容器,资源的使用率大大提高,这也是云计算需要达到的真正目的。
4Docker与OpenStack结合OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目12。
该项目得到了AMD、IBM、Intel的青睐。
同时,也成为2014年最受关注的开源项目;
因此,Docker与OpenStack的结合是未来PaaS平台发展的一大趋势。
二者的结合主要基于Heat和Nova两种,下面分别就这两种方式进行分析。
1)Docker与Nova集成。
通过driver形式实现了Docker与Openstack的集成(见图3)。
Openstack的Nova中,command和dashboard通过API接口与compute连接,compute与Docker的driver通过API连接,由此实现了二者的关联。
Docker的registry镜像以及driver的数据都将反馈给Glance。
这个过程中Docker容器当作虚拟机来使用。
图3Docker与Nova集成2)Docker与Heat集成(见图4)。
Docker与Nova的集成中将Docker以虚拟机的形式使用,无法发挥出容器的独有优势;
因此,出现了Heat与Docker的集成方案。
Heat通过PluginAPI与相应插件关联,进而通过API或者HTTP关联Docker。
利用Heat中的插件机制,可实现Openstack部署和管理Docker容器。
图4Docker与Heat集成5总结Docker自发布以来,一直受到业界的热捧。
这个开源的容器引擎使得开发者可以通过镜像打包自己的应用以及运行环境,实现快速开发、快速部署、快速迭代。
同时,沙箱机制可降低接口之间的数据开销,提高硬件的资源利用率。
但是关于Docker与现有开源架构的研究还需进一步完善。
参考文献1袁璐,李仁发.云环境下动态信任模型研究综述D/OL.(2010-10-20)2015-02-02.http:
/DanielNations.WhatisCloudComputing?
EB/OL.2015-01-05.http:
/互动百科.云计算EB/OL.2015-02-02.http:
/4林琳,滕腾,李伟彬.PaaS的范畴及架构标准化研究J.信息技术与标准化,2012(10):
25-325虚拟化技术EB/OL.2015-02-02.http:
/zh.wikipedia.org/wiki/%E8%99%9B%E6%93%AC%E5%8C%966Dua,Bangalore,Raja.VirtualizationvsContainerizationtoSupportPaaSJ.IEEE,2014,41:
610-6147RedHat推出专为Docker定制的Linux发行版EB/OL.2015-02-02.http:
/Google拥抱Docker:
把互联网变成一个巨大的计算机EB/OL.2015-2-02.http:
/Systems&
Solutions40docker/9IBM和Docker宣布建立战略伙伴关系EB/OL.2015-02-02.http:
/国内“BAT”先锋企业百度BaiduAppEngine(BAE)平台EB/OL.2015-02-02.http:
/Docker周报:
阿里云ECS支持DockerEB/OL.2015-02-02.http:
/谁在掌管着OpenStack项目EB/OL.2015-02-02.http:
/岩博士,主要研究领域为软件定义网络,信息中心网络,网络功能虚拟化等。
陈存香博士,工程师,主要研究领域为云计算安全策略、PaaS研究。
国内外发表文章14篇,专利3项。
作者简历AnalysisofDockerRealizationChenQingjin1ChenCunxiang1ZhangYan2AbstractPaaSdevelopsrapidlyduetodiverseapplicationrequirementsofcloudcomputing.AsoneofthemostpopularPaaStechnologiestherearelotsofaspectstobestudiedofdocker.Firstly,thispaperanalyzesthecoreofDocker-architecture,keyelementsandmainadvantages.Secondly,itcomparesVirtualMachineandDocker,thetwocoretechnologiesofPaaS,andfinallystatestheintegrationstrategybetweenOpenstackandDocker.KeywordsPaaS;
Docker;
Virtualization;
Openstack1ChinaUnicomCloudDataCo.,Ltd.,Beijing100032,China2ChinaUnitedNetworkCommunicationsCo.,Ltd.,Beijing