docker scout compare

描述比較兩個映象並顯示差異(實驗性)
用法docker scout compare --to IMAGE|DIRECTORY|ARCHIVE [IMAGE|DIRECTORY|ARCHIVE]
別名
docker scout diff

實驗性

此命令是實驗性的。

實驗性功能旨在用於測試和反饋,因為它們的功能或設計可能會在版本之間未經警告而更改,或者在未來的版本中被完全刪除。

描述

docker scout compare 命令分析兩個映象並顯示比較結果。

此命令是實驗性的,其行為將來可能會改變

此命令的目的是比較同一映象的兩個版本。例如,當構建新映象並將其與生產環境中執行的版本進行比較時。

如果未指定映象,則最近構建的映象將用作比較目標。

支援以下工件型別:

  • 映象
  • OCI 佈局目錄
  • docker save 建立的 Tarball 存檔
  • 本地目錄或檔案

預設情況下,該工具需要一個映象引用,例如:

  • redis
  • curlimages/curl:7.87.0
  • mcr.microsoft.com/dotnet/runtime:7.0

如果您要分析的工件是 OCI 目錄、tarball 存檔、本地檔案或目錄,或者如果您想控制映象的解析來源,則必須在引用前加上以下字首之一:

  • image:// (預設)使用本地映象,或回退到登錄檔查詢
  • local:// 使用本地映象儲存中的映象(不進行登錄檔查詢)
  • registry:// 使用登錄檔中的映象(不使用本地映象)
  • oci-dir:// 使用 OCI 佈局目錄
  • archive:// 使用由 docker save 建立的 tarball 存檔
  • fs:// 使用本地目錄或檔案
  • sbom:// SPDX 檔案或帶有 SPDX 謂詞的 in-toto 證明檔案或 syft json SBOM 檔案

選項

選項預設值描述
-x, --exit-on以逗號分隔的條件列表,如果情況惡化或發生變化,則操作步驟失敗,選項包括:vulnerability(漏洞)、policy(策略)、package(包)
--formattext生成的漏洞報告的輸出格式
- text: 預設輸出,純文字,帶或不帶顏色,取決於終端
- markdown: Markdown 輸出
--hide-policies從輸出中隱藏策略狀態
--ignore-base過濾掉來自基礎映象的 CVE
--ignore-unchanged過濾掉未更改的包
--multi-stage顯示來自多階段 Docker 構建的包
--only-fixed僅過濾可修復的 CVE
--only-package-type以逗號分隔的包型別列表(如 apk、deb、rpm、npm、pypi、golang 等)
--only-policy以逗號分隔的要評估的策略列表
--only-severity以逗號分隔的嚴重性列表(critical、high、medium、low、unspecified),用於過濾 CVE
--only-stage以逗號分隔的多階段 Docker 構建階段名稱列表
--only-unfixed僅過濾未修復的 CVE
--orgDocker 組織的名稱空間
-o, --output將報告寫入檔案
--platform要分析的映象平臺
--ref如果提供的 tarball 包含多個引用,則使用的引用。
只能與 archive 一起使用
--to要比較的映象、目錄或存檔
--to-env要比較的環境名稱
--to-latest要比較的最新處理的映象
--to-ref如果提供的 tarball 包含多個引用,則使用的引用。
只能與 archive 一起使用。

示例

將最近構建的映象與最新標籤進行比較

$ docker scout compare --to namespace/repo:latest

將本地構建與登錄檔中相同的標籤進行比較

$ docker scout compare local://namespace/repo:latest --to registry://namespace/repo:latest

忽略基礎映象

$ docker scout compare --ignore-base --to namespace/repo:latest namespace/repo:v1.2.3-pre

生成 Markdown 輸出

$ docker scout compare --format markdown --to namespace/repo:latest namespace/repo:v1.2.3-pre

僅比較 Maven 包,並且僅顯示 Maven 包的關鍵漏洞

$ docker scout compare --only-package-type maven --only-severity critical --to namespace/repo:latest namespace/repo:v1.2.3-pre

顯示兩個映象的所有策略結果

docker scout compare --to namespace/repo:latest namespace/repo:v1.2.3-pre