docker scout sbom

描述生成或显示镜像的软件物料清单 (SBOM)
用法docker scout sbom [IMAGE|DIRECTORY|ARCHIVE]

描述

docker scout sbom 命令分析软件构件以生成软件物料清单 (SBOM)。

SBOM 包含镜像中所有软件包的列表。可以使用 --format 标志过滤命令的输出,以仅显示特定类型的软件包。

如果没有指定镜像,则使用最近构建的镜像。

支持以下构件类型:

  • 镜像
  • 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:// 使用本地目录或文件

选项

选项默认值描述
--formatjson输出格式
- list:镜像的软件包列表
- json:SBOM 的 JSON 表示形式
- spdx:SBOM 的 SPDX 表示形式
- cyclonedx:SBOM 的 CycloneDX 表示形式
--only-package-type用逗号分隔的软件包类型列表(例如 apk、deb、rpm、npm、pypi、golang 等)
只能与 --format list 一起使用
-o, --output将报告写入文件
--platform要分析的镜像的平台
--ref如果提供的 Tarball 包含多个引用,则要使用的引用。
只能与 archive 一起使用

示例

显示软件包列表

$ docker scout sbom --format list alpine

仅显示特定类型的软件包

 $ docker scout sbom --format list --only-package-type apk alpine

以 JSON 格式显示完整的 SBOM

$ docker scout sbom alpine

显示最近构建镜像的完整 SBOM

$ docker scout sbom

将 SBOM 写入文件

$ docker scout sbom --output alpine.sbom alpine