容器如何比较runC
这两者如何比较? 据我所知,runC是一个容器的运行环境。 这意味着这个组件提供了运行容器的必要环境。 这里containerd的作用是什么呢? 如果剩下的(networking,卷pipe理等),那么Docker引擎的作用是什么? 那containerd-shim呢? 基本上,我试图了解每个组件的function。
我将给出一个高层次的概述,让你开始:
- containerd是一个容器运行时,可以pipe理一个完整的容器生命周期 – 从映像传输/存储到容器执行,监督和联网。
- 容器垫片处理无头容器,意思是一旦runc初始化容器,它就退出把容器交给作为一些中间人的容器垫片。
- runc是一个轻量级的通用运行时容器,遵守OCI规范。 containerc根据OCI规范使用runc来产卵和运行容器。 这也是libcontainer的重新包装。
- grpc用于containerd和docker -engine之间的通信。
- OCI维护运行时间和图像的OCI规范。 当前的docker版本支持OCI映像和运行时规格。
更多链接:
- 打开容器规范
- 一个不错的dockercon 2016演示文稿