Cgroup Namespaces
cgroup 实现资源限额
cgroup 全称 Control Group。Linux 操作系统通过 cgroup 可以设置进程使用 CPU、内存 和 IO 资源的限额。
在启动容器时可使用参数 docker run –blkio-weight-device –cpu-shares –memory 等 。
ll /sys/fs/cgroup/cpu/docker/
ll /sys/fs/cgroup/memory/docker
ll /sys/fs/cgroup/blkio/docker
namespace 实现资源隔离
Mount
Mount namespace 让容器看上去拥有整个文件系统。 容器有自己的 / 目录,可以执行 mount 和 umount 命令。当然我们知道这些操作只在当前容器中生效,不会影响到 host 和其他容器。
UTS hostname
简单的说,UTS namespace 让容器有自己的 hostname。 默认情况下,容器的 hostname 是它的短ID,可以通过 -h 或 –hostname 参数设置。
IPC
IPC namespace 让容器拥有自己的共享内存和信号量(semaphore)来实现进程间通信,而不会与 host 和其他容器的 IPC 混在一起。