Docker技术实现分析
2015-05-13陈清金陈存香
陈清金 陈存香 张 岩
1 中国联通云数据有限公司 北京 100032
2 中国联合网络通信有限公司 北京 100033
随着互联网的迅猛发展,云计算作为一种商业计算模式在搜索服务、移动商务、开放协作等多样化需求的推动下迅速发展起来[1]。云计算以动态的、易扩展等优势提供了虚拟化资源的计算和存储方式,并受到Google、IBM、Amazon、Microsoft等IT厂商的大力推广和应用[2]。
云计算包括基础设施即服务(Infrastructure as a Service,IaaS),平台即服务(Platform as a Service,PaaS)和软件即服务(Software as a Service,SaaS)[3]。基于PaaS平台,用户/开发者可以便捷地开发和部署应用程序,将应用程序托管在PaaS管理的云基础设施中,从而节省大量的平台搭建和维护工作,并达到缩短开发周期,降低运维成本的目的[4]。Docker作为轻量级的虚拟化方式,实现了PaaS平台的高效部署、运行和维护。
1 研究背景
PaaS的核心技术之一就是虚拟化。维基百科将虚拟化定义为:虚拟化技术是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以用比原本的组态更好的方式来应用这些资源[5]。
虚拟化主要分为两大类,即基于硬件的虚拟化和基于软件的虚拟化。基于软件的虚拟化分为应用虚拟化和平台虚拟化。虚拟机(Virtual Machine,VM)技术属于平台虚拟化。应用虚拟化可细分为完全虚拟化、硬件辅助虚拟化、部分虚拟化、超虚拟化、操作系统级虚拟化。Docker属于操作系统级的虚拟化。
2 Docker技术剖析
Docker是PaaS提供商dotCloud开源的一个基于LXC的高级容器引擎,基于go语言并遵从Apache2.0协议[6]。……
