码迷,mamicode.com
首页 > 其他好文 > 详细

Docker 容器的隔离性

时间:2018-07-13 18:54:33      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:基础   内核   生成   实现   网络   docker 容器   png   分享   内存   

Docker 容器的隔离性 就是 使用Linux namespace 来隔离运行环境和成 cgroup 限制容器使用的资源。 

namespace 可以顾名思义 命名空间;所以可以理解为每个独立的容器的全局资源空间。

Linux从2.4.19 就开始引入了 namespace 概念;

Linux 内核 实现了6 种namespace :

IPC:隔离system V IPC和POSIX消息队列 
Network:隔离网络资源 
Mount:隔离文件系统挂载点 
PID:隔离进程PID 
UTS:隔离主机名和域名 
User:隔离用户ID和组ID

 

技术分享图片

 

Linux control group 

Linux cgroup 可以控制对系统资源的分配CPU内存 磁盘IO 网络带宽 和设备访问限制设置。

它可以隔离一个进程的集合,分配限制资源CPU 内核使用。

技术分享图片

blkio   这???个???子???系???统???为???块???设???备???设???定???输???入???/输???出???限???制???,比???如???物???理???设???备???(磁???盘???,固???态???硬???盘???,USB 等???等???)。
cpu     这???个???子???系???统???使???用???调???度???程???序???提???供???对??? CPU 的??? cgroup 任???务???访???问???。???
cpuacct  这???个???子???系???统???自???动???生???成??? cgroup 中???任???务???所???使???用???的??? CPU 报???告???。???
cpuset   这???个???子???系???统???为??? cgroup 中???的???任???务???分???配???独???立??? CPU(在???多???核???系???统???)和???内???存???节???点???。???
devices  这???个???子???系???统???可???允???许???或???者???拒???绝??? cgroup 中???的???任???务???访???问???设???备???。???
freezer  这???个???子???系???统???挂???起???或???者???恢???复??? cgroup 中???的???任???务???。???
memory   这???个???子???系???统???设???定??? cgroup 中???任???务???使???用???的???内???存???限???制???,并???自???动???生???成?????内???存???资???源使用???报???告???。???
net_cls  这???个???子???系???统???使???用???等???级???识???别???符???(classid)标???记???网???络???数???据???包???,可???允???许??? Linux 流???量???控???制???程???序???(tc)识???别???从???具???体??? cgroup 中???生???成???的???数???据???包???。???
net_prio  这个子系统用来设计网络流量的优先级
hugetlb  这个子系统主要针对于HugeTLB系统进行限制,这是一个大页文件系统。

Docker 容器使用 Linux cgroup 限制容器使用基础资源。

Docker 启动一个容器后,会在 /sys/fs/cgroup 目录下的各个资源目录下生成以容器 ID 为名字的目录;

 

Docker 容器的隔离性

标签:基础   内核   生成   实现   网络   docker 容器   png   分享   内存   

原文地址:https://www.cnblogs.com/sharesdk/p/9306489.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!