标签: Linux

撕开容器的黑盒:用 Rust 从零写一个 Linux 容器运行时

每天敲 docker run,但容器到底是怎么把进程关进笼子的?namespace 在哪、cgroup 干了什么、OverlayFS 又是什么魔法?带着这些问题,我用 Rust 从零写了一个迷你容器运行时 capsule-box——daemon/client 架构、namespace 隔离、cgroup v2 限内存、OverlayFS 做文件系统、veth+bridge+NAT 打通网络、PTY 支持交互式终端。本文拆解它每一块做了什么,以及容器底层到底长什么样。