docker scout compare

说明比较两个镜像并显示差异(实验性)
用法docker scout compare --to IMAGE|DIRECTORY|ARCHIVE [IMAGE|DIRECTORY|ARCHIVE]
别名
docker scout diff

实验性

此命令是实验性的。

实验性功能旨在用于测试和反馈,其功能或设计可能会在版本之间更改,恕不另行通知,或可能在未来版本中完全移除。

说明

docker scout compare 命令分析两个镜像并显示比较结果。

此命令是**实验性**的,其行为将来可能会更改。

此命令的预期用途是比较同一镜像的两个版本。例如,当构建新镜像并将其与生产环境中运行的版本进行比较时。

如果未指定镜像,则使用最近构建的镜像作为比较目标。

支持以下工件类型

  • 镜像
  • OCI 布局目录
  • Tarball 归档文件,由 docker save 创建
  • 本地目录或文件

默认情况下,该工具需要一个镜像引用,例如

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

如果您要分析的工件是 OCI 目录、tarball 归档文件、本地文件或目录,或者如果您想控制镜像的解析位置,则必须使用以下前缀之一:

  • image://(默认)使用本地镜像,或者回退到注册表查找
  • local:// 使用本地镜像存储中的镜像(不执行注册表查找)
  • registry:// 使用注册表中的镜像(不使用本地镜像)
  • oci-dir:// 使用 OCI 布局目录
  • archive:// 使用 tarball 归档文件,由 docker save 创建
  • fs:// 使用本地目录或文件
  • sbom:// SPDX 文件或带有 SPDX 谓词的 in-toto attestation 文件,或 syft json SBOM 文件

选项

选项默认值说明
-x, --exit-on以逗号分隔的条件列表,如果情况更糟则导致操作步骤失败,选项包括:漏洞, 策略
--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 一起使用。

示例

将最近构建的镜像与 latest 标签进行比较

$ 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