容器如何比较runC

这两者如何比较? 据我所知,runC是一个容器的运行环境。 这意味着这个组件提供了运行容器的必要环境。 这里containerd的作用是什么呢? 如果剩下的(networking,卷pipe理等),那么Doc​​ker引擎的作用是什么? 那containerd-shim呢? 基本上,我试图了解每个组件的function。

我将给出一个高层次的概述,让你开始:

  • containerd是一个容器运行时,可以pipe理一个完整的容器生命周期 – 从映像传输/存储到容器执行,监督和联网。
  • 容器垫片处理无头容器,意思是一旦runc初始化容器,它就退出把容器交给作为一些中间人的容器垫片。
  • runc是一个轻量级的通用运行时容器,遵守OCI规范。 containerc根据OCI规范使用runc来产卵和运行容器。 这也是libcontainer的重新包装。
  • grpc用于containerd和docker -engine之间的通信。
  • OCI维护运行时间和图像的OCI规范。 当前的docker版本支持OCI映像和运行时规格。

runC,containerD

更多链接:

  • 打开容器规范
  • 一个不错的dockercon 2016演示文稿