受信任的內容
Docker Hub 的受信任內容提供了精選的高質量、安全映象,旨在讓開發者對其使用的資源的可靠性和安全性充滿信心。這些映象穩定、定期更新,並遵循行業最佳實踐,使其成為構建和部署應用程式的堅實基礎。Docker Hub 的受信任內容包括 Docker Official Images、認證釋出者映象和 Docker 贊助開源軟體映象。
Docker 官方映象
Docker Official Images 是一組託管在 Docker Hub 上的精選 Docker 倉庫。
Docker 建議您在專案中優先使用 Docker Official Images。這些映象有清晰的文件,遵循最佳實踐,並且定期更新。Docker Official Images 支援大多數常見用例,非常適合新的 Docker 使用者。高階使用者可以從更專業的映象變體中受益,也可以在學習 Dockerfile
的過程中參考 Docker Official Images。
注意
使用 Docker Official Images 須遵守 Docker 服務條款。
這些映象提供了必要的基礎倉庫,作為大多數使用者的起點。
其中包括作業系統,例如 Ubuntu 和 Alpine;程式語言執行時,例如 Python 和 Node;以及其他基本工具,例如 memcached 和 MySQL。
這些映象屬於 Docker Hub 上最安全的映象之列。這一點尤為重要,因為 Docker Official Images 是 Docker Hub 上最受歡迎的映象之一。通常,Docker Official Images 所含包含 CVE 的軟體包很少或沒有。
這些映象示例了 Dockerfile 最佳實踐,並提供清晰的文件,可供其他 Dockerfile 作者參考。
參與此計劃的映象在 Docker Hub 上有一個特殊徽章,讓您更容易識別屬於 Docker Official Images 的專案。


支援的標籤和相應的 Dockerfile 連結
每個 Docker Official Image 的倉庫描述中都包含一個 支援的標籤和相應的 Dockerfile 連結 部分,列出了當前所有標籤以及指向建立這些帶標籤映象的 Dockerfile 的連結。此部分的目的是展示可用的映象變體。


同一行中列出的標籤都指向同一個底層映象。多個標籤可以指向同一個映象。例如,在之前從 ubuntu
Docker Official Images 倉庫擷取的螢幕截圖中,標籤 24.04
、noble-20240225
、noble
和 devel
都指向同一個映象。
Docker Official Image 的 latest
標籤通常經過最佳化,易於使用,幷包含各種有用的軟體,例如開發和構建工具。透過將映象標記為 latest
,映象維護者本質上建議將該映象用作預設映象。換句話說,如果您不知道要使用哪個標籤或不熟悉底層軟體,則應該從 latest
映象開始。隨著您對軟體和映象變體的瞭解加深,您可能會發現其他映象變體更適合您的需求。
Slim 映象
許多語言棧,例如 Node.js、Python 和 Ruby,都提供 slim
標籤變體,旨在提供一個輕量級、生產就緒的基礎映象,其中包含更少的軟體包。
slim
映象的典型使用模式是作為多階段構建最終階段的基礎映象。例如,您在構建的第一階段使用 latest
變體構建您的應用程式,然後將您的應用程式複製到基於 slim
變體的最終階段。這是一個示例 Dockerfile
。
FROM node:latest AS build
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY . ./
FROM node:slim
WORKDIR /app
COPY --from=build /app /app
CMD ["node", "app.js"]
Alpine 映象
許多 Docker Official Images 倉庫還提供 alpine
變體。這些映象構建於 Alpine Linux 發行版之上,而不是 Debian 或 Ubuntu。Alpine Linux 專注於為容器映象提供一個小型、簡單且安全的基礎,而 Docker Official Images 的 alpine
變體通常只安裝必要的軟體包。因此,Docker Official Images 的 alpine
變體通常甚至比 slim
變體更小。
需要注意的主要事項是 Alpine Linux 使用 musl libc 而非 glibc。此外,為了最大限度地減小映象大小,基於 Alpine 的映象通常預設不包含 Git 或 Bash 等工具。根據你的程式對 libc 的需求深度或假設,你可能會遇到缺少庫或工具的問題。
當你使用 Alpine 映象作為基礎映象時,請考慮以下選項,以使你的程式與 Alpine Linux 和 musl 相容
- 使用 musl libc 編譯你的程式
- 將 glibc 庫靜態連結到你的程式中
- 完全避免 C 語言依賴(例如,構建 Go 程式時停用 CGO)
- 在你的 Dockerfile 中自行新增所需的軟體。
如果你不熟悉,請參考 Docker Hub 上的 alpine
映象 描述,瞭解如何安裝軟體包的示例。
代號
帶有看起來像《玩具總動員》角色名稱(例如 bookworm、bullseye 和 trixie)或形容詞(例如 focal、jammy 和 noble)的標籤,表示它們用作基礎映象的 Linux 發行版代號。Debian 版本的代號基於《玩具總動員》角色,而 Ubuntu 的代號形式為“形容詞 動物”。例如,Ubuntu 24.04 的代號是 "Noble Numbat"。
Linux 發行版指示符很有用,因為許多 Docker Official Images 提供基於不同底層發行版版本的變體(例如 postgres:bookworm 和 postgres:bullseye)。
其他標籤
Docker Official Images 標籤除了此處描述的之外,可能還包含指示其映象變體用途的其他提示。這些標籤變體通常在 Docker Official Images 倉庫文件中進行解釋。閱讀“How to use this image”(如何使用此映象)和“Image Variants”(映象變體)部分將幫助你理解如何使用這些變體。
認證釋出者映象
Docker 驗證出版商計劃提供經 Docker 驗證的商業出版商的高質量映象。
這些映象幫助開發團隊構建安全的軟體供應鏈,在早期階段最大限度地減少暴露於惡意內容,以節省後續時間和金錢。
屬於此計劃的映象在 Docker Hub 上有一個特殊徽章,使使用者更容易識別 Docker 驗證為高質量商業出版商的專案。


Docker 贊助開源軟體映象
Docker 贊助的開源軟體 (OSS) 計劃提供由 Docker 贊助的開源專案釋出和維護的映象。
屬於此計劃的映象在 Docker Hub 上有一個特殊徽章,使使用者更容易識別 Docker 驗證為可信賴、安全且活躍的開源專案。

