用途:引导理解 Linux 容器底层机制,包括命名空间(clone、unshare、nsenter)、cgroups v2 资源限制、overlayfs 存储、runc 与 OCI 运行时规范、seccomp-bpf 过滤、Linux capabilities 权限降级以及容器逃逸缓解。
主要能力与用法: 命名空间:用 ls -la /proc/self/ns/ 与 readlink 查看进程命名空间;用 nsenter -t <pid> -m -u -i -n -p bash 进入容器命名空间;用 unshare --fork --mount-proc --pid --net --uts --ipc bash 手动创建隔离环境。涵盖 mount、PID、NET、UTS、IPC、USER、CGROUP 等类型。 cgroups v2:挂载 mount -t cgroup2 none /sys/fs/cgroup,创建子组并写入 cgroup.procs,通过 memory.max、cpu.weight、io.weight 设置限制,查看 memory.events 了解 OOM。 overlayfs:由 lowerdir、upperdir、workdir、merged 组成,写时复制,Docker 层存于 /var/lib/docker/overlay2/。 runc 与 OCI:runc spec 生成 config.json,编辑命名空间、挂载、进程参数后 sudo runc run mycontainer。 seccomp-bpf:用 libseccomp 添加规则,动作包括 KILL、ERRNO、TRACE、ALLOW;可用 ausearch -m SECCOMP 审计。 capabilities:capsh --drop=all --add=net_bind_service 降权,setcap/getcap 管理文件能力。
适用场景:理解 Docker/Podman 隔离、调试 OOM 与 CPU 节流、编写 seccomp 配置、构建无 Docker 的最小容器、调查逃逸漏洞、调优 Kubernetes Pod 的 cgroups v2。
限制:资料未提供具体版本兼容性、性能数据或完整安全保证;rootless 模式无法挂载多数文件系统且无 CAP_SYS_ADMIN;已知逃逸向量包括挂载 docker.sock、特权模式、内核 CVE 与 /proc 泄漏。