containerd 镜像仓库

此页面提供有关在 Docker Engine 中使用 containerd 进行镜像和文件系统管理的持续集成的信息。

注意

切换到 containerd 镜像存储后,经典镜像存储中的镜像和容器将不可见。所有这些容器和镜像仍然存在。要再次查看它们,请关闭 containerd 镜像存储功能。

什么是 containerd?

containerd 是对用于在系统上运行和管理容器的底层内核功能的抽象。它是 Docker 和 Kubernetes 等容器软件中使用的平台。

Docker Engine 已经使用 containerd 进行容器生命周期管理,包括创建、启动和停止容器。此页面描述了 Docker 对 containerd 集成的下一步:containerd 镜像存储。

镜像存储

镜像存储是负责将镜像推送到文件系统、拉取镜像以及在文件系统上存储镜像的组件。经典 Docker 镜像存储支持的镜像类型有限。例如,它不支持包含清单列表的镜像索引。当您创建多平台镜像时,例如,镜像索引会解析镜像的所有特定于平台的变体。构建带注释的镜像时,也需要镜像索引。

containerd 镜像存储扩展了 Docker Engine 可以本地交互的镜像类型的范围。虽然这是一个低级架构更改,但它是解锁一系列新用例的先决条件,包括

  • 构建多平台镜像 和带注释的镜像
  • 支持使用具有独特特性的 containerd 快照器,例如 stargz 用于容器启动时延迟拉取镜像,或 nydusdragonfly 用于点对点镜像分发。
  • 能够运行 Wasm 容器

启用 containerd 镜像存储

containerd 镜像存储默认情况下未启用。要为 Docker Desktop 启用此功能,请

  1. 在 Docker Desktop 中导航到 **设置**。
  2. 在 **常规** 选项卡中,选中 **使用 containerd 拉取和存储镜像**。
  3. 选择 **应用并重启**。

要禁用 containerd 镜像存储,请清除 **使用 containerd 拉取和存储镜像** 复选框。

构建多平台镜像

术语“多平台镜像”是指针对多个不同架构的镜像捆绑包。开箱即用,Docker Desktop 的默认构建器不支持构建多平台镜像。

$ docker build --platform=linux/amd64,linux/arm64 .
[+] Building 0.0s (0/0)
ERROR: Multi-platform build is not supported for the docker driver.
Switch to a different driver, or turn on the containerd image store, and try again.
Learn more at https://docs.docker.net.cn/go/build-multi-platform/

启用 containerd 镜像存储使您能够构建多平台镜像并将它们加载到您的本地镜像存储中

反馈

感谢您尝试使用 containerd 提供的新功能。请通过 反馈表格 上的错误跟踪器提供反馈或报告您可能发现的任何错误。