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

重要鏡像儲存庫的可見度必須保持為私人。將其可見度變更為公開將停止更新的鏡像。
一旦鏡像,映像儲存庫的功能就如同 Docker Hub 上的任何其他私人儲存庫。擁有儲存庫存取權限的團隊成員現在可以提取和使用該映像。若要了解如何管理存取、檢視標籤或設定組態,請參閱儲存庫。
用於同步和警示的 Webhook 整合
為了讓外部註冊中心或系統與您鏡像的 Docker 硬化映像保持同步,並在更新發生時收到通知,您可以在 Docker Hub 中鏡像的儲存庫上設定 webhook。每當新的映像標籤被推送或更新時,webhook 都會向您定義的 URL 傳送一個 POST 請求。
例如,您可能會設定 webhook,以便每當有新的標籤被鏡像時,就呼叫 https://ci.example.com/hooks/dhi-sync 上的 CI/CD 系統。由此 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 文件。
接下來
鏡像映像儲存庫後,您可以開始使用映像。