可信內容

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 服務條款的約束。

這些映象提供了重要的基礎倉庫,可作為大多數使用者的起點。

這包括作業系統,例如 UbuntuAlpine,程式語言執行時,例如 PythonNode,以及其他基本工具,例如 memcachedMySQL

這些映象是 Docker Hub 上 最安全的映象。這尤其重要,因為 Docker 官方映象是一些最受歡迎的 Docker Hub 映象。通常,Docker 官方映象幾乎沒有或完全沒有包含 CVE 的軟體包。

這些映象展示了 Dockerfile 最佳實踐,並提供了清晰的文件,可作為其他 Dockerfile 作者的參考。

屬於該計劃的映象在 Docker Hub 上有一個特殊徽章,方便您識別屬於 Docker 官方映象的專案。

Docker official image badge

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

Example: supported tags for Ubuntu

同一行上列出的標籤都指向相同的底層映象。多個標籤可以指向同一個映象。例如,在從 `ubuntu` Docker 官方映象倉庫擷取的上一個截圖中,標籤 `24.04`、`noble-20240225`、`noble` 和 `devel` 都指向同一個映象。

Docker 官方映象的 latest 標籤通常經過最佳化,易於使用,幷包含各種有用的軟體,例如開發和構建工具。透過將映象標記為 latest,映象維護者實際上是在建議將該映象用作預設映象。換句話說,如果您不知道使用哪個標籤或不熟悉底層軟體,您應該從 latest 映象開始。隨著您對軟體和映象變體的理解加深,您可能會發現其他映象變體更適合您的需求。

精簡映象

許多語言棧(例如 Node.jsPythonRuby)都提供了 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 映象的描述中的示例。

代號

帶有類似《玩具總動員》角色名稱(例如 bookwormbullseyetrixie)或形容詞(例如 jammynoble)的標籤表示它們所使用的基礎映象的 Linux 發行版代號。Debian 版本代號基於《玩具總動員》角色,而 Ubuntu 的代號形式為“形容詞 動物”。例如,Ubuntu 24.04 的代號是“Noble Numbat”。

Linux 發行版指示符很有幫助,因為許多 Docker 官方映象提供了基於多個底層發行版版本(例如,`postgres:bookworm` 和 `postgres:bullseye`)構建的變體。

其他標籤

除了這裡描述的標籤外,Docker 官方映象標籤可能還包含其他提示,說明其映象變體的用途。通常,這些標籤變體會在 Docker 官方映象倉庫文件中進行解釋。閱讀“如何使用此映象”和“映象變體”部分將幫助您瞭解如何使用這些變體。

已驗證釋出者映象

Docker 認證釋出商計劃提供由 Docker 認證的商業釋出商釋出的高質量映象。

這些映象幫助開發團隊構建安全的軟體供應鏈,在流程早期最大限度地減少惡意內容暴露,從而節省後期的時間和金錢。

屬於該計劃的映象在 Docker Hub 上有一個特殊徽章,方便使用者識別 Docker 認證為高質量商業釋出商的專案。

Docker-Sponsored Open Source badge

Docker 贊助的開源軟體映象

Docker 贊助的開源軟體 (OSS) 計劃提供由 Docker 贊助的開源專案釋出和維護的映象。

屬於此計劃的映象在 Docker Hub 上有一個特殊徽章,方便使用者識別 Docker 驗證為可信、安全且活躍的開源專案。

Docker-Sponsored Open Source badge