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.docker.net.tw/go/build-multi-platform/

啟用 containerd 映象儲存允許你構建多平臺映象並將其載入到本地映象儲存中