全部產品
Search
文件中心

Container Registry:使用OCI v1.1.0規範管理和關聯容器鏡像及其衍生製品

更新時間:Sep 05, 2024

從2024年04月起,新建立的ACR企業版執行個體將支援OCI的Image和Distribution規範v1.1.0,包括對Reference Types的支援。這意味著您除了可以儲存和分發容器鏡像外,還能管理和分發非容器鏡像內容的OCI製品,如鏡像簽名和軟體物料清單(SBOM)。這使您能夠像管理容器鏡像一樣,管理和分發這些OCI製品。本文將介紹如何在Container RegistryACR中應用OCI v1.1.0新版本規範的相關功能。

前提條件

  • 已在本地安裝ORAS用戶端。具體操作,請參見安裝ORAS

  • 已在本地安裝Docker。具體操作,請參見安裝Docker並使用(Linux)

  • 已配置專用網路或公網的存取控制,用於串連到企業版執行個體,本文以配置公網存取控制為例。具體操作,請參見配置公網的存取控制

  • 已擷取登入企業版執行個體的密碼。若您忘記或遺失密碼,您可以通過配置訪問憑證的方式重設密碼。具體操作,請參見配置訪問憑證

步驟一:使用Referrers API關聯鏡像的衍生製品

Referrers API是OCI v1.1.0新版本規範提出的能力,旨在將容器鏡像與其衍生製品,例如物料清單(SBOM)、簽名和漏洞掃描結果緊密關聯。它能夠協助您有效追蹤特定軟體製品的來源,從而提升鏡像的安全性與合規性管理和審查的效率。下面以容器鏡像的物料清單(SBOM)產生與關聯為例,展示 Referrers API的相關作用。

如果您在環境中無法執行docker sbom命令,需要先安裝並配置sbom-cli-plugin組件。

安裝配置sbom-cli-plugin組件

如果您在環境中無法執行docker sbom命令時,可以按照如下方式安裝和配置sbom-cli-plugin組件

  1. 安裝sbom-cli-plugin組件。

    wget "https://github.com/docker/sbom-cli-plugin/releases/download/v0.6.1/sbom-cli-plugin_0.6.1_linux_amd64.tar.gz"
  2. 建立組件目錄。

    mkdir -p /root/.docker/cli-plugins
  3. 解壓tar包到指定目錄中。

    tar -zxvf sbom-cli-plugin_0.6.1_linux_amd64.tar.gz -C  /root/.docker/cli-plugins

以下樣本將展示如何使用Referrers API來關聯鏡像<企業版執行個體名稱>-registry.cn-hangzhou.cr.aliyuncs.com/library/golang:1.20的物料清單(SBOM)。

  1. 指明企業版執行個體網域名稱,並輸入您的使用者名稱和登入密碼。

    登入成功之後會顯示Login Succeeded

    docker login <企業版執行個體名稱>-registry.cn-hangzhou.cr.aliyuncs.com
    Username: ****@test.com
    Password:
    Login Succeeded
  2. 執行以下命令,產生目標鏡像的物料清單(SBOM)資料。

    docker sbom <企業版執行個體名稱>-registry.cn-hangzhou.cr.aliyuncs.com/library/golang:1.20 --format spdx-json -o sbom.jsom

    預期輸出。

    13

  3. 執行以下命令,關聯目標鏡像物料清單(SBOM)資料。

     oras attach  --distribution-spec v1.1-referrers-api <企業版執行個體名稱>-registry.cn-hangzhou.cr.aliyuncs.com/library/golang:1.20 sbom.jsom --artifact-type example/sbom

    預期輸出。

    14

  4. 執行以下命令,查看目標鏡像與物料清單(SBOM)關聯關係。

    oras discover  --distribution-spec v1.1-referrers-api <企業版執行個體名稱>-registry.cn-hangzhou.cr.aliyuncs.com/library/golang:1.20

    預期輸出。

    15

步驟二:跨執行個體分發鏡像及其關聯的衍生製品

ACR企業版執行個體支援通過ORAS等工具跨執行個體分發鏡像及其關聯的衍生製品。我們以拷貝容器鏡像及其軟體物料(SBOM)為例來展示這一功能。

將已關聯的物料清單(SBOM)中的 <企業版執行個體名稱>-registry.cn-hangzhou.cr.aliyuncs.com/library/golang:1.20鏡像分發到<企業版執行個體名稱>-registry.cn-beijing.cr.aliyuncs.com倉庫。您需要先登入目標執行個體鏡像倉庫。

  1. 指明企業版執行個體網域名稱,並輸入您的使用者名稱和登入密碼。

    登入成功之後會顯示Login Succeeded

    docker login <企業版執行個體名稱>-registry.cn-beijing.cr.aliyuncs.com
    Username: ****@test.com
    Password:
    Login Succeeded
  2. 執行以下命令,分發鏡像及其關聯的物料清單(SBOM)至目標執行個體鏡像倉庫。

    $ oras cp -r --from-distribution-spec v1.1-referrers-api --to-distribution-spec v1.1-referrers-api <企業版執行個體名稱>-registry.cn-hangzhou.cr.aliyuncs.com/library/golang:1.20 <企業版執行個體名稱>-registry.cn-beijing.cr.aliyuncs.com/library/golang:1.20

    預期輸出。

    16

  3. 執行以下命令,目標鏡像也有同樣的物料清單(SBOM)。

    oras discover  --distribution-spec v1.1-referrers-api <企業版執行個體名稱>-registry.cn-beijing.cr.aliyuncs.com/library/golang:1.20

    預期輸出。

    17