映象 Docker 強化映像儲存庫
在使用 Docker 強化映像 (DHI) 之前,您必須將其儲存庫映象到您的組織。只有組織所有者才能執行此操作。映象後,該映像將在您的組織名稱空間中可用,有權訪問的使用者可以開始拉取和使用它。
映象的儲存庫會自動保持最新。Docker 會持續同步來自上游 DHI 目錄的新標籤和映像更新,因此您始終可以訪問最新的安全版本。
先決條件
映象映像儲存庫
要映象 Docker 強化映像儲存庫
- 前往 Docker Hub 並登入。
- 選擇我的 Hub。
- 在名稱空間下拉選單中,選擇有權訪問 DHI 的組織。
- 選擇強化映像 > 目錄。
- 選擇一個 DHI 儲存庫以檢視其詳細資訊。
- 選擇映象到儲存庫並按照螢幕上的說明進行操作。
所有標籤完成映象可能需要幾分鐘。映像映象完成後,“映象到儲存庫”按鈕將變為“在儲存庫中檢視”。選擇“在儲存庫中檢視”會開啟一個下拉列表,其中包含該映像已映象到的儲存庫。在此下拉列表中,您可以:
- 選擇一個現有的映象儲存庫以檢視其詳細資訊
- 再次選擇映象到儲存庫以將映像映象到額外的儲存庫
映象儲存庫後,該儲存庫將以您指定的名稱(字首為 dhi-
)出現在您組織的儲存庫列表中。它將繼續接收更新的映像。


重要映象儲存庫的可見性必須保持私有。將其可見性更改為公共將停止更新的映象。
映象後,映像儲存庫將像 Docker Hub 上的任何其他私有儲存庫一樣執行。有權訪問儲存庫的團隊成員現在可以拉取和使用該映像。要了解如何管理訪問、檢視標籤或配置設定,請參閱儲存庫。
用於同步和警報的 Webhook 整合
為了使外部登錄檔或系統與您的映象 Docker 強化映像保持同步,並在更新發生時接收通知,您可以在 Docker Hub 中映象儲存庫上配置webhook。每當推送或更新新映像標籤時,webhook 都會向您定義的 URL 傳送 POST
請求。
例如,您可以配置一個 webhook,以便在映象新標籤時呼叫 CI/CD 系統 https://ci.example.com/hooks/dhi-sync
。此 webhook 觸發的自動化可以從 Docker Hub 拉取更新的映像並將其推送到內部登錄檔,例如 Amazon ECR、Google Artifact Registry 或 GitHub Container Registry。
其他常見的 webhook 用例包括
- 觸發驗證或漏洞掃描工作流
- 簽名或推廣映像
- 向下遊系統傳送通知
Webhook 負載示例
當 webhook 觸發時,Docker Hub 會發送如下 JSON 負載
{
"callback_url": "https://registry.hub.docker.com/u/exampleorg/dhi-python/hook/abc123/",
"push_data": {
"pushed_at": 1712345678,
"pusher": "trustedbuilder",
"tag": "3.13-alpine3.21"
},
"repository": {
"name": "dhi-python",
"namespace": "exampleorg",
"repo_name": "exampleorg/dhi-python",
"repo_url": "https://hub.docker.com/r/exampleorg/dhi-python",
"is_private": true,
"status": "Active",
...
}
}
停止映象映像儲存庫
只有組織所有者才能停止映象儲存庫。停止映象後,儲存庫將保留,但不再接收更新。您仍然可以拉取最後映象的映像,但儲存庫將不會從原始儲存庫接收新標籤或更新。
要停止映象映像儲存庫
- 前往 Docker Hub 並登入。
- 選擇我的 Hub。
- 在名稱空間下拉選單中,選擇有權訪問 DHI 的組織。
- 選擇強化映象 > 管理。
- 在要停止映象的儲存庫的最右側列中,選擇選單圖示。
- 選擇停止映象。
停止映象儲存庫後,您可以選擇另一個 DHI 儲存庫進行映象。
將 Docker Hub 中的映像映象到另一個登錄檔
將 Docker 強化映像儲存庫映象到 Docker Hub 上的組織名稱空間後,您可以選擇將其映象到另一個容器登錄檔,例如 Amazon ECR、Google Artifact Registry、GitHub Container Registry 或私有 Harbor 例項。
您可以使用任何標準工作流,包括
- Docker CLI
- Docker Hub 登錄檔 API
- 第三方登錄檔工具或 CI/CD 自動化
以下示例演示瞭如何使用 Docker CLI 拉取映象的 DHI 並將其推送到另一個登錄檔
# Authenticate to Docker Hub (if not already signed in)
$ docker login
# Pull the image from your organization's namespace on Docker Hub
$ docker pull <your-namespace>/dhi-<image>:<tag>
# Tag the image for your destination registry
$ docker tag <your-namespace>/dhi-<image>:<tag> registry.example.com/my-project/<image>:<tag>
# Push the image to the destination registry
# You will need to authenticate to the third-party registry before pushing
$ docker push registry.example.com/my-project/<image>:<tag>
重要為了繼續接收映像更新並保留對 Docker 強化映像的訪問,請確保推送到其他登錄檔的任何副本都保持私有。
映象映像時包含證明
Docker 強化映像已簽名幷包含提供元資料(例如構建來源和漏洞掃描結果)的相關證明。這些證明作為 OCI 工件儲存,預設情況下在使用 Docker CLI 映象映像時不會包含。
要在將 DHI 複製到另一個登錄檔時保留完整的安全上下文,您必須明確包含證明。一個工具是 regctl
,它支援複製映像及其關聯的工件。
有關如何使用 regctl
複製映像及其關聯工件的更多詳細資訊,請參閱regclient 文件。
接下來做什麼
映象映像儲存庫後,您可以開始使用映像。