温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

​docker容器对进程的隔离方式

发布时间:2021-09-04 16:36:28 来源:亿速云 阅读:173 作者:chen 栏目:建站服务器

本篇内容主要讲解“docker容器对进程的隔离方式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“docker容器对进程的隔离方式”吧!

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容器对进程的隔离方式”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI