生成并显示 JSON 格式的基本 SBOM
在这一步中,你将学习如何为 Docker 镜像生成基本的软件物料清单(Software Bill of Materials,SBOM),并以 JSON 格式显示它。SBOM 是构成软件组件的正式成分列表。它就像软件的装箱单,详细列出了所使用的所有第三方组件、库和依赖项。生成 SBOM 对于了解软件的安全状况和许可合规性至关重要。
你将使用 syft
工具来生成 SBOM。syft
是一个用于从容器镜像和文件系统生成 SBOM 的命令行工具和库。
首先,拉取一个用于演示的简单 Docker 镜像。你将使用 alpine:latest
镜像,它是一个轻量级的 Linux 发行版。
docker pull alpine:latest
你应该会看到表明镜像正在被拉取和下载的输出。
Using default tag: latest
latest: Pulling from library/alpine
...
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
现在你已经有了镜像,可以生成 SBOM 了。你将使用 syft
命令,指定镜像名称并将输出格式设置为 JSON。
syft alpine:latest -o json
这个命令将分析 alpine:latest
镜像,并将 SBOM 以 JSON 格式直接输出到你的终端。输出将是一个大型的 JSON 对象,包含镜像中找到的软件包的信息,包括它们的名称、版本、许可证和类型。
你可以滚动查看输出,查看 SBOM 中列出的不同组件。这个基本的 JSON 输出提供了镜像内软件组件的全面视图。