containerd 镜像存储
本页面提供了有关 Docker Engine 中正在进行的 containerd(用于镜像和文件系统管理)集成的信息。
注意
经典镜像存储和新的 containerd 镜像存储之间不共享镜像和容器。切换镜像存储时,非活动存储中的容器和镜像将保留但被隐藏,直到您切换回该存储。
什么是 containerd?
containerd 是一种用于抽象底层内核功能的机制,这些功能用于在系统上运行和管理容器。
它是一种在 Docker 和 Kubernetes 等容器软件中使用的平台。
Docker Engine 已使用 containerd 进行容器生命周期管理,
包括创建、启动和停止容器。
本页面介绍 Docker 中 containerd 集成的下一步:
containerd 镜像存储。
镜像仓库
镜像存储是负责推送、拉取并将镜像存储在文件系统上的组件。 传统的 Docker 镜像存储在支持的镜像类型上存在限制。 例如,它不支持镜像索引(image indices),即包含清单列表(manifest lists)的结构。 当您创建多平台镜像(例如),镜像索引会解析该镜像的所有平台特定变体。 在使用证明(attestations)构建镜像时,也需要使用镜像索引。
containerd 镜像存储扩展了 Docker 引擎可原生交互的镜像类型范围。 尽管这是一项底层架构变更, 但它却是实现一系列新用例的前提条件,包括:
- 构建多平台镜像及带声明的镜像
- 支持使用具有独特特性的 containerd 快照插件,例如 stargz,用于在容器启动时延迟拉取镜像; 或 nydus 和 dragonfly,用于点对点镜像分发。
- 运行 Wasm 容器的能力
启用 containerd 镜像存储
自 Docker Desktop 版本 4.34 起,默认启用 containerd 镜像存储,但仅适用于全新安装或执行出厂重置的情况。如果您是从早期版本的 Docker Desktop 升级而来,或使用的是较旧版本的 Docker Desktop,则必须手动切换至 containerd 镜像存储。
在 Docker Desktop 中手动启用此功能:
- 在 Docker Desktop 中导航至 设置。
- 在常规选项卡中,勾选使用 containerd 拉取和存储镜像。
- 选择 应用并重启。
要禁用 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.com/go/build-multi-platform/
启用 containerd 镜像存储可让您构建多平台镜像 并将它们加载到本地镜像存储中:
反馈
感谢您试用 containerd 中提供的新功能。您可以通过在以下链接的 issues 跟踪器中提交反馈或报告发现的任何问题:
反馈表单。