云计算虚拟化技术与开发
上QQ阅读APP看书,第一时间看更新

1.3.2 Docker与系统虚拟化

Docker是操作系统级别的轻量级虚拟化技术,也就是实现轻量级的操作系统虚拟化。它能够让应用的分发、部署和管理都变得前所未有的高效和轻松。同时它也是一个用Go语言实现的开源项目,源代码在github上。

Docker也是一个开源的应用容器引擎,它可以让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到安装了任何Linux发行版本的机器上。Docker基于LXC(Linux Container)来实现类似VM的功能,可以在更有限的硬件资源上提供给用户更多的计算资源。与VM等虚拟化的方式不同,LXC不属于全虚拟化或半虚拟化中的任何一个分类,而是一个操作系统级虚拟化。

Docker借助Linux的内核特性,如控制组(Control Group)、命名空间(Namespace)等,直接调用操作系统的系统调用接口,从而降低每个容器的系统开销,降低容器复杂度,实现启动快、资源占用小等特征。

传统的虚拟化技术要生成一个环境的时间非常久,但对于Docker来说启动和销毁一个操作系统环境都是秒级的,而且其底层依赖的技术LXC完全是内核特性,没有任何中间层开销,对于资源的利用率极高,性能接近物理机。