RunC 是一个轻量级的工具,它是用来运行容器的,只用来做这一件事,并且这一件事要做好。我们可以认为它就是个命令行小工具,可以不用通过 docker 引擎,直接运行容器。事实上runC 是标准化的产物,它根据 OCI 标准来创建和运行容器。
runc的主要作用是使用Linux Kernel提供的诸如namespaces, cgroup等进程隔离机制以及SELinux等security功能,构建供容器运行的隔离环境。
下图中橘色的立方体就是runc建立的隔离环境,而其中运行的process就和Host上的其他容器隔离了开来。而容器中蓝色的部分可以看到一部分在Host kernel中,另一部分则延伸到了容器内,这里我觉得作者想要表达的是容器中模拟了一部分操作系统的功能,但是本质上还是要依赖Host kernel来实现的。