Docker 容器的隔离性
Posted sharesdk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker 容器的隔离性相关的知识,希望对你有一定的参考价值。
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 容器的隔离性的主要内容,如果未能解决你的问题,请参考以下文章