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(包) | |
--format | text | 生成的漏洞報告的輸出格式 - 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 | |
--org | Docker 組織的名稱空間 | |
-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