docker中的资源隔离与容器镜像详解

namespace做资源隔离
在docker中使用的:
mount 保证容器看到的文件系统视图是文件镜像提供的
uts 隔离了hostname和domain name
pid 保证容器进程是一号进程
network 网络,除了容器用host这种网络模式,其他所有的网络有自己的网络文件
user 用户uid 和gid 容器内部和系统的映射
ipc 进程间通信
cgroup

容器中创建namespace
unshare

cgroup主要做资源限制
驱动 systemd 和cgroupfs 需要限制的直接写入cgroup文件
systemd本身可以提供一种cgroup的管理,通过cgroup接口完成

容器中用到的cgroup
cpu cpuset cpuacct
memory 控制进程使用量
device,freezer 容器安全 停止时使用,把当前秦城写入cgroup中
可以在容器中看到的设备
blkio 容器用到磁盘的bps
pid限制容器里面用到的最大进程数量

容器镜像构成:
docker images
基于连个文件系统,文件存放不同层级,可以通过统一视图看到分层上的文件
不停层可以被其他镜像复用
容器可写层可以做成镜像新的一层docker中的资源隔离与容器镜像详解
containerd工作流程

docker中的资源隔离与容器镜像详解