映象 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,以便在映象新標籤時呼叫 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",
    ...
  }
}

停止映象映像儲存庫

只有組織所有者才能停止映象儲存庫。停止映象後,儲存庫將保留,但不再接收更新。您仍然可以拉取最後映象的映像,但儲存庫將不會從原始儲存庫接收新標籤或更新。

要停止映象映像儲存庫

  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 文件

接下來做什麼

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