互联网技术 / 互联网资讯 · 2024年4月5日 0

Docker 与 containerd 集成的扩展

我们正在扩展 DockeR 与 contAIneRd 的集成,以包括图像管理!为了及早分享这项工作并获得反馈,此集成作为最新 DockeR Desktop 4.12.0 版本的一项可选实验功能提供。

Docker 与 containerd 集成的扩展

用最简单的话来说,contAIneRd 是一个被广泛采用的开放容器运行时。它管理其主机系统的完整容器生命周期!这包括拉取和推送图像以及处理容器的启动和停止。更不用说,contAIneRd 是容器体验中的低级积木。它不是由开发人员直接使用,而是设计为嵌入到 DockeR 和 KubeRnetes 等系统中。

DockeR 参与contAIneRd 项目可以追溯到 2016 年,可以说,这是一个有点激情的项目!虽然我们有很多启动该项目的理由,但我们的目标是将容器监管从核心 DockeR 引擎中移出并转移到一个单独的守护进程中。这样,它就可以在 KubeRnetes 等项目中重用。它已捐赠给云原生计算基金会 (CNCF),截至 2017 年,它现在是一个成熟(稳定)项目。

正如我们之前提到的,DockeR 已经使用 contAIneRd 作为 DockeR engine 的一部分来管理容器生命周期(创建、启动和停止)已有一段时间了!这项新工作是将 contAIneRd 更深入地集成到 DockeR 引擎中的一步。它允许您使用 contAIneRd 存储图像,然后推送和拉取它们。ContAIneRd 还使用快照程序而不是图形驱动程序来挂载容器的根文件系统。由于 contAIneRd 的可插拔架构,它也可以支持多个快照器。

ContAIneRd 是领先的开放容器运行时,更好的是,它已经是 DockeR 引擎的一部分!通过切换到 contAIneRd 进行图像管理,我们更好地使自己与更广泛的行业工具保持一致。

此迁移修改了两个主要内容:

1.我们正在用 contAIneRd 的快照程序替换 DockeR 的图形驱动程序。
2.我们将使用 contAIneRd 来推送、拉取和存储图像。

我们知道开发人员喜欢当今 DockeR 命令的工作方式,并且许多工具都依赖于现有的 DockeR API。考虑到这一点,我们完全致力于确保集成尽可能透明并且不会破坏现有的工作流程。为此,我们首先将其作为一项实验性的、可选择加入的功能推出,以便我们能够尽早获得反馈。在最新的 DockeR Desktop 中启用时,此实验性功能允许您在后台使用以下 DockeR 命令和 contAIneRd:运行、提交、构建、推送、加载和保存。

这对 DockeR 用户意味着什么?

1.ContAIneRd 的快照器实现可帮助您快速插入新功能。一些示例包括使用staRgz在启动时延迟拉取图像,或者使用nydUS和dRagonfly进行点对点图像分发。
2.contAIneRd 内容存储可以本地存储多平台图像和其他 OCI 兼容对象。这启用了一些功能,例如使用 DockeR 引擎构建和操作多平台图像的能力(以及未来可能的其他内容!)。

Docker 与 containerd 集成的扩展

如果不启用实验性功能,您将收到一条错误消息,指出 dockeR 驱动程序不支持此功能,如下图所示。

Docker 与 containerd 集成的扩展

总之,DockeR 用户现在可以期待完整的 contAIneRd 集成。这带来了许多令人兴奋的功能,从原生多平台支持到加密图像和惰性拉取。因此,请确保下载最新版本的 DockeR Desktop并启用 contAIneRd 实验性功能以试用它!