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容器。
发表回复