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(策略) | |
--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 搭配使用。 |
範例
將最近建立的映像檔與 latest 標籤進行比較
$ docker scout compare --to namespace/repo:latest
將本地建置與來自 registry 的相同標籤進行比較
$ 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