天天看点

《容器技术系列》一1.1 引言

本节书摘来华章计算机《容器技术系列》一书中的第1章 ,第1.1节,孙宏亮 著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

docker是linux平台上的一款轻量级虚拟化容器的管理引擎。在全球范围内,docker还是一个开源项目,整个项目基于go语言开发,代码托管于github网站上,并遵从apache 2.0协议。目前,docker可以帮助用户在容器内部快速自动化部署应用,并利用linux内核特性命名空间(namespaces)及控制组(cgroups)等为容器提供隔离的运行环境。docker借助操作系统层的虚拟化实现资源的隔离,因此docker容器在运行时与虚拟机(vm)的运行有很大的区别,docker容器与宿主机共享同一个操作系统,不会有额外的操作系统开销。这样的优势很明显,因而大大提高了资源利用率,并且提升了i/o等方面的性能。

众多新颖的特性以及项目本身的开放性,导致docker在不到两年的时间里迅速获得了诸多厂商的青睐,其中更是包括google、microsoft、vmware等行业领航者。google在2014年6月推出了kubernetes,宣布支持docker容器的调度管理,而2014年8月microsoft则宣布azure上支持kubernetes,随后传统虚拟化巨头vmware宣布与docker强强合作。2014年9月中旬,docker更是获得4000万美元的c轮融资,以推动分布式应用的发展。

目前,docker的前景被普遍看好。未来的云计算领域乃至整个it领域,docker都必将扮演不可或缺的角色。为了帮助大家更好地认识docker、理解docker并掌握docker,本书从docker源码的角度出发,详细介绍docker的架构、docker的运行以及docker的特性。本章主要介绍docker架构。

本书关于docker的分析均基于docker 1.2.0版本的源码。

本章目的是在理解docker源码的基础上分析docker架构,分析过程主要按照以下三个部分进行:

docker的总架构图。

docker架构内部各模块功能与实现的分析。

通过具体的docker命令,阐述docker的运行流程。