docker 基于Linux的内核特性

docker 依赖于Linux的二个特性:命名空间(namespace)和控制组(cgroups)

命名空间(namespace):实现系统资源的隔离,如进程,网络,文件系统等,实现轻量级的虚拟化服务,也就是容器。

PID (Process ID ) 进程隔离
NET (network)管理网络接口
IPC (InterProcess Communication) 管理跨进程通信的访问
MNT (mount) 管理挂载点
UTS (UNIX Timesharing System ) 隔离内核和版本号

控制组:
资源限定 控制内存使用上线
优先级设定 控制哪些资源可以优先使用内存等
资源计量: 统计进程组使用的系统资源
资源控制: 资源挂起或恢复

docker容器的文件系统隔离,使得每个系统都有自己的root文件系统。
进程隔离,使得每个每个容器都运行在自己的环境中,互不干扰。
网络隔离,容器间的虚拟网络接口和IP都是分开的。
资源隔离和分组,使用cgroups将CPU和内存之类的独立分配给每个docker容器。

相关推荐