containerd 映像儲存區

Docker Desktop 正在過渡到使用 containerd 進行映像檔與檔案系統管理。本頁概述了 containerd 映像檔儲存庫的好處、設定流程以及所啟用的新功能。

注意

Docker Desktop 為傳統儲存庫與 containerd 映像檔儲存庫分別維護獨立的映像檔存放區。在兩者之間切換時,來自非作用中儲存庫的映像檔和容器會保留在磁碟上,但會處於隱藏狀態,直到您切換回來為止。

什麼是 containerd

containerd 是一種容器執行階段,為容器生命週期管理提供了輕量級且一致的介面。它已經被 Docker Engine 在底層用於建立、啟動與停止容器。

Docker Desktop 持續整合 containerd,現在延伸到了映像檔儲存庫,提供了更高的靈活性與現代化的映像檔支援。

什麼是 containerd 映像檔儲存庫?

映像檔儲存庫是負責在檔案系統上推播(push)、拉取(pull)與儲存映像檔的元件。

傳統的 Docker 映像檔儲存庫在支援的映像檔類型方面有限。例如,它不支援包含資訊清單列表(manifest lists)的映像檔索引(image indices)。例如,當您建立多平台映像檔時,映像檔索引會解析映像檔的所有平台特定變體。在建置帶有證明的映像檔時,也需要映像檔索引。

containerd 映像檔儲存庫擴展了 Docker Engine 可以原生互動的映像檔類型範圍。雖然這是一種底層架構的變更,但它是釋放一系列新用例的先決條件,包括:

  • 建置多平台映像檔以及帶有證明的映像檔
  • 支援使用具有獨特特性的 containerd 快照程式(snapshotters),例如用於容器啟動時延遲拉取映像檔的 stargz,或是用於點對點映像檔傳輸的 nydusdragonfly
  • 執行 Wasm 容器的能力

啟用 containerd 映像檔儲存庫

containerd 映像檔儲存庫在 Docker Desktop 4.34 及更高版本中預設啟用,但僅適用於全新安裝或執行原廠設定重置的情況。如果您是從舊版 Docker Desktop 升級,或使用的是較舊的 Docker Desktop 版本,則必須手動切換到 containerd 映像檔儲存庫。

若要在 Docker Desktop 中手動啟用此功能:

  1. 前往 Docker Desktop 中的設定 (Settings)
  2. 一般 (General) 分頁中,勾選使用 containerd 拉取並儲存映像檔 (Use containerd for pulling and storing images)
  3. 選取 Apply(套用)。

若要停用 containerd 映像檔儲存庫,請取消勾選使用 containerd 拉取並儲存映像檔 (Use containerd for pulling and storing images) 核取方塊。

建置多平台映像檔

「多平台映像檔」一詞是指針對多種不同架構的映像檔組合。預設情況下,Docker Desktop 的內建產生器(builder)不支援建置多平台映像檔。

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

啟用 containerd 映像檔儲存庫後,您可以建置多平台映像檔並將其載入到您的本機映像檔儲存庫中。

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