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,或是用於點對點映像檔傳輸的 nydus 和 dragonfly。
- 執行 Wasm 容器的能力
啟用 containerd 映像檔儲存庫
containerd 映像檔儲存庫在 Docker Desktop 4.34 及更高版本中預設啟用,但僅適用於全新安裝或執行原廠設定重置的情況。如果您是從舊版 Docker Desktop 升級,或使用的是較舊的 Docker Desktop 版本,則必須手動切換到 containerd 映像檔儲存庫。
若要在 Docker Desktop 中手動啟用此功能:
- 前往 Docker Desktop 中的設定 (Settings)。
- 在一般 (General) 分頁中,勾選使用 containerd 拉取並儲存映像檔 (Use containerd for pulling and storing images)。
- 選取 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 映像檔儲存庫後,您可以建置多平台映像檔並將其載入到您的本機映像檔儲存庫中。