不久前,Docker 宣布开源他们的容器运行时组件 Containerd(发音是 container-D)。目前的 Containerd 版本是 0.2.4,Docker 计划在 2017 年第二季度基于 Open Container Initiative(OCI)发布 1.0 版本。
Containerd 是一个容器运行时组件,它原本是 Docker 平台的一部分,虽然小巧,但在整个系统里起到很关键的作用。Containerd 被设计成一种低耦合并且很容易与其它工具集成的组件。它在 Docker 1.12 里所处的位置如下图所示:
从图中可以看出,Containerd 提供了一组运行容器的 API。Docker 引擎通过调用 GRPC API 来启动执行进程,随后会启动管理器和执行器来负责监控和运行容器。容器最后通过 runC 来运行,runC 也是 Docker 的另一个开源项目,它实现了 OCI 运行时标准。
计划中的 Containerd 1.0 版本将会有所变化,它在 Docker 中的位置将会是如下图所示的样子:
新版的 Containerd 将包含如下特性:
关于 Containerd 的更多架构细节可以参看 GitHub 主页的内容。
Containerd 是 Docker 开源的众多项目中的新成员,这些项目包括 libcontainer、libnetwork、notary、runC、HyperKit、VPNkit、Datakit、swarmkit 和 Infrakit 等。
此次开源 Containerd,Docker 是希望能够与广大社区和其它各大厂商巨头共同构建一个双赢的结果。正如 Docker CTO Solomon Hykes 所说的那样,“我们迫不及待地要把这个东西贡献出来,因为我们也会因此获得很好的回报,这是一种良性的回馈闭环,这个闭环里的各方都会从中受益”。基于 Containerd,企业可以构建自己的容器管理软件。目前,阿里巴巴、Amazon、Google、Microsoft 和 IBM 等公司的员工已经加入到该项目的贡献者行列。而随着该项目的不断完善,Docker 也将因此得到好处。
为了避免 Containerd 与 Docker 或其它商业实体存在关联,Docke 计划明年把 Containerd 独立出来,并交由中立基金进行管理。
来自: InfoQ