上QQ阅读APP看书,第一时间看更新
2.1.2 Docker核心技术
Docker核心技术有3类:Cgroups、LXC、AUFS。
1.Cgroups
Cgroups提供了对一组进程及将来子进程的资源限制、控制和统计的能力,这些资源包括CPU、内存、存储、网络等。通过Cgroups,可以方便地限制某个进程的资源占用,并且可以实时监测进程的监控和统计信息。Cgroups的接口通过操作一个虚拟文件系统来实现,一般挂载在(/sys/fs/cgroup)文件夹下。
2.LXC
LXC是Linux Containers的简称,是一种基于容器的操作系统层级的虚拟化技术。LXC项目位于Sourceforge上面,由一个Linux内核补丁和一些用户空间工具组成,其中内核补丁提供底层新特性,上层工具使用这些新特性,提供一套简化的工具来维护容器。
LXC在资管管理方面依赖与Linux内核密切相关的Cgroups子系统,这个子系统是Linux内核提供的一个基于进程组的资源管理框架,可以为特定的进程组限定可以使用的资源,借助Cgroups子系统,在当前Linux环境下实现一个轻量化的虚拟机。
LXC在隔离控制方面依赖于Linux内核提供的namespace特性,具体来说,就是在clone时加入相应的flag。
3.AUFS
AUFS是一种Union File System(联合文件系统),又称Another UnionFS,后来被称为Alternative UnionFS,再后来又被称为高大上的Advance UnionFS。所谓UnionFS,就是把不同物理位置的目录合并(mount)到同一个目录中。UnionFS的一个最主要应用是,把一张CD/DVD和一个硬盘目录联合(mount)在一起,然后,就可以对这个只读的CD/DVD上的文件进行修改(当然,修改的文件存储在硬盘上的目录里)。