鏡像 Docker 硬化映像儲存庫

訂閱: Docker 硬化映像

在您使用 Docker 硬化映像 (DHI) 之前,您必須將其儲存庫鏡像到您的組織。只有組織擁有者才能執行此操作。一旦鏡像完成,該映像就會在您組織的命名空間中可用,擁有存取權限的使用者即可開始提取和使用它。

鏡像的儲存庫會自動保持最新。Docker 會繼續從上游 DHI 目錄同步新的標籤和映像更新,因此您始終可以存取最新的安全版本。

先決條件

  • 若要管理鏡像,您必須是組織擁有者
  • 您的組織必須註冊才能使用 Docker 硬化映像。

鏡像映像儲存庫

若要鏡像 Docker 硬化映像儲存庫

  1. 前往 Docker Hub 並登入。
  2. 選取我的 Hub
  3. 在命名空間下拉式選單中,選取可存取 DHI 的組織。
  4. 選取硬化映像 > 目錄
  5. 選取一個 DHI 儲存庫以檢視其詳細資訊。
  6. 選取鏡像到儲存庫並依照螢幕上的指示操作。

所有標籤可能需要幾分鐘才能完成鏡像。一旦映像鏡像完成,鏡像到儲存庫按鈕會變更為在儲存庫中檢視。選取在儲存庫中檢視會開啟一個下拉式清單,其中包含已鏡像映像的儲存庫。您可以從此下拉式清單中:

  • 選取一個現有的鏡像儲存庫以檢視其詳細資訊
  • 再次選取鏡像到儲存庫以將映像鏡像到另一個儲存庫

鏡像儲存庫後,該儲存庫將以您指定的名稱出現在您組織的儲存庫清單中,並以 dhi- 為字首。它將繼續接收更新的映像。

Repository list with mirrored repository showing
重要

鏡像儲存庫的可見度必須保持為私人。將其可見度變更為公開將停止更新的鏡像。

一旦鏡像,映像儲存庫的功能就如同 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",
    ...
  }
}

停止鏡像映像儲存庫

只有組織擁有者可以停止鏡像儲存庫。停止鏡像後,儲存庫仍會保留,但它將不再接收更新。您仍然可以提取最後一個被鏡像的映像,但該儲存庫將不會從原始儲存庫接收新的標籤或更新。

若要停止鏡像映像儲存庫

  1. 前往 Docker Hub 並登入。
  2. 選取我的 Hub
  3. 在命名空間下拉式選單中,選取可存取 DHI 的組織。
  4. 選取硬化映像 > 管理
  5. 在您要停止鏡像的儲存庫最右側欄中,選取選單圖示。
  6. 選取停止鏡像

停止鏡像儲存庫後,您可以選擇另一個 DHI 儲存庫進行鏡像。

將映像從 Docker Hub 鏡像到另一個註冊中心

將 Docker 硬化映像儲存庫鏡像到您組織在 Docker Hub 上的命名空間後,您可以選擇將其鏡像到另一個容器註冊中心,例如 Amazon ECR、Google Artifact Registry、GitHub Container Registry 或私有 Harbor 實例。

您可以使用任何標準工作流程,包括:

以下範例說明如何使用 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 文件

接下來

鏡像映像儲存庫後,您可以開始使用映像

© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.