containerd 镜像存储

Docker Desktop 正在过渡到使用 containerd 进行镜像和文件系统管理。本页概述了 containerd 镜像存储的优势、设置过程以及新功能。

注意

Docker Desktop 为经典镜像存储和 containerd 镜像存储维护独立的存储。当在这两者之间切换时,非活动存储中的镜像和容器会保留在磁盘上,但在切换回来之前是隐藏的。

什么是 containerd

containerd 是一个容器运行时,它为容器生命周期管理提供了一个轻量级、一致的接口。Docker Engine 已经在底层使用它来创建、启动和停止容器。

Docker Desktop 正在进行的 containerd 集成现在扩展到镜像存储,提供更大的灵活性和现代镜像支持。

什么是 containerd 镜像存储?

镜像存储是负责在文件系统上推送、拉取和存储镜像的组件。

经典的 Docker 镜像存储支持的镜像类型有限。例如,它不支持包含清单列表的镜像索引。当你创建多平台镜像时,例如,镜像索引会解析镜像所有特定于平台的变体。在构建带有证明的镜像时也需要镜像索引。

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

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

启用 containerd 镜像存储

containerd 镜像存储在 Docker Desktop 4.34 版及更高版本中默认启用,但仅限于全新安装或执行恢复出厂设置的情况。如果你从早期版本的 Docker Desktop 升级,或者使用旧版本的 Docker Desktop,则必须手动切换到 containerd 镜像存储。

要在 Docker Desktop 中手动启用此功能:

  1. 导航到 Docker Desktop 中的 Settings(设置)。
  2. General(通用)选项卡中,勾选 Use containerd for pulling and storing images(使用 containerd 拉取和存储镜像)。
  3. 选择**应用**。

要禁用 containerd 镜像存储,请取消勾选 Use containerd for pulling and storing images(使用 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.container.net.cn/go/build-multi-platform/

启用 containerd 镜像存储允许你构建多平台镜像并将其加载到本地镜像存储中

© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.