可信內容
Docker Hub 的可信內容提供了一系列精選的高質量、安全的映象,旨在讓開發者對所用資源的可靠性和安全性充滿信心。這些映象穩定、定期更新並遵循行業最佳實踐,為構建和部署應用程式奠定了堅實基礎。Docker Hub 的可信內容包括 Docker 官方映象、已驗證釋出者映象和 Docker 贊助的開源軟體映象。
Docker 官方映象
注意Docker 正在為 Docker 官方映象 (DOI) 停用 Docker 內容信任 (DCT)。從 2025 年 8 月 8 日開始,最舊的 DOI DCT 簽名證書將開始到期。如果您將
docker trust
命令與 DOI 一起使用,可能已經開始看到過期警告。這些證書一旦被 Docker 客戶端快取,隨後將不會重新整理,這使得證書輪換不切實際。如果您已將DOCKER_CONTENT_TRUST
環境變數設定為 true (DOCKER_CONTENT_TRUST=1
),DOI 拉取將開始失敗。解決方法是取消設定DOCKER_CONTENT_TRUST
環境變數。docker trust inspect
的使用也將開始失敗,並且不應再用於 DOI。有關更多詳細資訊,請參閱 https://www.docker.com/blog/retiring-docker-content-trust/。
Docker 官方映象是在 Docker Hub 上託管的一組精選 Docker 倉庫。
Docker 建議您在專案中使用 Docker 官方映象。這些映象有清晰的文件,遵循最佳實踐,並定期更新。Docker 官方映象支援大多數常見用例,非常適合 Docker 新使用者。高階使用者可以從更專業的映象變體中受益,也可以在 Dockerfile
學習過程中檢視 Docker 官方映象。
注意Docker 官方映象的使用受 Docker 服務條款的約束。
這些映象提供了重要的基礎倉庫,可作為大多數使用者的起點。
這包括作業系統,例如 Ubuntu 和 Alpine,程式語言執行時,例如 Python 和 Node,以及其他基本工具,例如 memcached 和 MySQL。
這些映象是 Docker Hub 上 最安全的映象。這尤其重要,因為 Docker 官方映象是一些最受歡迎的 Docker Hub 映象。通常,Docker 官方映象幾乎沒有或完全沒有包含 CVE 的軟體包。
這些映象展示了 Dockerfile 最佳實踐,並提供了清晰的文件,可作為其他 Dockerfile 作者的參考。
屬於該計劃的映象在 Docker Hub 上有一個特殊徽章,方便您識別屬於 Docker 官方映象的專案。


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


同一行上列出的標籤都指向相同的底層映象。多個標籤可以指向同一個映象。例如,在從 `ubuntu` Docker 官方映象倉庫擷取的上一個截圖中,標籤 `24.04`、`noble-20240225`、`noble` 和 `devel` 都指向同一個映象。
Docker 官方映象的 latest
標籤通常經過最佳化,易於使用,幷包含各種有用的軟體,例如開發和構建工具。透過將映象標記為 latest
,映象維護者實際上是在建議將該映象用作預設映象。換句話說,如果您不知道使用哪個標籤或不熟悉底層軟體,您應該從 latest
映象開始。隨著您對軟體和映象變體的理解加深,您可能會發現其他映象變體更適合您的需求。
精簡映象
許多語言棧(例如 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 官方映象倉庫也提供 alpine
變體。這些映象構建在 Alpine Linux 發行版而非 Debian 或 Ubuntu 之上。Alpine Linux 專注於為容器映象提供小巧、簡單且安全的基礎,而 Docker 官方映象 alpine
變體通常旨在僅安裝必要的軟體包。因此,Docker 官方映象 alpine
變體通常甚至比 slim
變體更小。
需要注意的主要問題是 Alpine Linux 使用 musl libc 而不是 glibc。此外,為了最小化映象大小,基於 Alpine 的映象通常預設不包含 Git 或 Bash 等工具。根據您的程式中 libc 需求或假設的深度,您可能會因為缺少庫或工具而遇到問題。
當您使用 Alpine 映象作為基礎時,請考慮以下選項,以使您的程式與 Alpine Linux 和 musl 相容:
- 針對 musl libc 編譯您的程式
- 將 glibc 庫靜態連結到您的程式中
- 完全避免 C 依賴(例如,構建不帶 CGO 的 Go 程式)
- 在 Dockerfile 中自行新增所需的軟體。
如果您不熟悉如何安裝軟體包,請參閱 Docker Hub 上 alpine
映象的描述中的示例。
代號
帶有類似《玩具總動員》角色名稱(例如 bookworm
、bullseye
和 trixie
)或形容詞(例如 jammy
和 noble
)的標籤表示它們所使用的基礎映象的 Linux 發行版代號。Debian 版本代號基於《玩具總動員》角色,而 Ubuntu 的代號形式為“形容詞 動物”。例如,Ubuntu 24.04 的代號是“Noble Numbat”。
Linux 發行版指示符很有幫助,因為許多 Docker 官方映象提供了基於多個底層發行版版本(例如,`postgres:bookworm` 和 `postgres:bullseye`)構建的變體。
其他標籤
除了這裡描述的標籤外,Docker 官方映象標籤可能還包含其他提示,說明其映象變體的用途。通常,這些標籤變體會在 Docker 官方映象倉庫文件中進行解釋。閱讀“如何使用此映象”和“映象變體”部分將幫助您瞭解如何使用這些變體。
已驗證釋出者映象
Docker 認證釋出商計劃提供由 Docker 認證的商業釋出商釋出的高質量映象。
這些映象幫助開發團隊構建安全的軟體供應鏈,在流程早期最大限度地減少惡意內容暴露,從而節省後期的時間和金錢。
屬於該計劃的映象在 Docker Hub 上有一個特殊徽章,方便使用者識別 Docker 認證為高質量商業釋出商的專案。


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

