本篇内容主要讲解“docker容器对进程的隔离方式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“docker容器对进程的隔离方式”吧!
创新互联是一家专业提供宜阳企业网站建设,专注与成都网站设计、做网站、H5技术、小程序制作等业务。10年已为宜阳众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。docker容器对进程的隔离主要采用2个技术点来实现:Namespace 技术和Cgroups 技术。
Namespace 技术
Namespace 并不是一个新技术,它是Linux操作系统默认提供的API,包括 PID Namespace、Mount Namespace、IPC Namespace、Network Namespace等等。
以 PID Namespace 为例,它的功能是可以让我们在创建进程的时候,告诉Linux系统,我们要创建的进程需要一个新的独立进程空间,并且这个进程在这个新的进程空间里的PID=1,也就是说,这个进程只看得到这个新进程空间里的东西,看不到外面宿主机环境里的东西,也看不到其它进程(不过这只是一个虚拟空间,事实上这个进程在宿主机里PID该是什么还是什么,没有变化,只不过在这个进程空间里,该进程以为自己的PID=1)。
另外,Network Namespace 的技术原理也类似,让这个进程只能看到当前Namespace空间里的网络设备,看不到宿主机真实情况。Namespace 技术其实就是修改了应用进程的视觉范围,但应用进程的本质却没有变化。
Cgroups 技术
Cgroup 其功能就是限制进程组所使用的大资源(这些资源可以是 CPU、内存、磁盘等等)。
Namespace 技术只能改变一下进程组的视觉范围,并不能真实的对资源做出限制。那么为了防止容器(进程)之间互相抢资源,甚至某个容器把宿主机资源全部用完导致其它容器也宕掉的情况发生。因此,必须采用 Cgroup 技术对容器的资源进行限制。
Cgroup 技术也是Linux默认提供的功能,在Linux系统的 /sys/fs/cgroup 下面有一些子目录 cpu、memory等,Cgroup技术提供的功能就是可以基于这些目录实现对这些资源进行限制。Cgroup 对其它内存、磁盘等资源也是采用同样原理做限制。
到此,相信大家对“docker容器对进程的隔离方式”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!