Schnellen Überblick aus einer SPDX-Datei erhalten
In diesem Schritt lernen Sie, wie Sie einen schnellen Überblick über die Softwarekomponenten in einem Docker-Image erhalten können, indem Sie eine SPDX-Datei (Software Package Data Exchange) generieren und untersuchen. SPDX ist ein offener Standard zur Kommunikation von Informationen über Software-Bill-of-Materials (SBOM), einschließlich Komponenten, Lizenzen und Urheberrechten.
Das Generieren einer SPDX-Datei für ein Docker-Image erfordert ein Tool, das die Image-Layer analysieren und die erforderlichen Informationen extrahieren kann. Ein solches Tool ist syft
, ein Befehlszeilentool zur Generierung von SBOMs aus Container-Images und Dateisystemen.
Da syft
nicht vorinstalliert ist, werden wir es herunterladen und installieren. Wir laden die neueste Version für Linux herunter.
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sudo bash -s -- -b /usr/local/bin
Dieser Befehl lädt das Installationsskript für syft
herunter und führt es mit sudo
aus, um die ausführbare Datei in /usr/local/bin
zu installieren. Möglicherweise werden Sie nach Ihrem Passwort gefragt, aber der labex
-Benutzer hat sudo
-Rechte ohne Passwortabfrage.
Nach der Installation können Sie überprüfen, ob syft
installiert ist, indem Sie seine Version prüfen:
syft version
Sie sollten die Versionsinformationen für syft
sehen.
Nun generieren wir eine SPDX-Datei für das my-recent-image
, das wir im vorherigen Schritt erstellt haben. Wir geben das Ergebnis in eine Datei namens my-recent-image.spdx.json
im ~/project
-Verzeichnis aus.
syft my-recent-image -o spdx-json > ~/project/my-recent-image.spdx.json
Dieser Befehl teilt syft
mit, das my-recent-image
zu analysieren und die Ergebnisse im SPDX-JSON-Format auszugeben, wobei die Ausgabe in die angegebene Datei umgeleitet wird. Dieser Vorgang kann je nach Größe des Images einen Moment dauern.
Nachdem der Befehl abgeschlossen ist, haben Sie eine SPDX-JSON-Datei, die eine detaillierte Liste der im Image gefundenen Softwarepakete enthält. Sie können den Inhalt dieser Datei mit einem Texteditor wie nano
anzeigen:
nano ~/project/my-recent-image.spdx.json
Innerhalb der Datei finden Sie Informationen über das Image selbst und eine Liste der erkannten Pakete, einschließlich ihrer Namen, Versionen und Lizenzen. Dies bietet einen schnellen Überblick über die im Image vorhandenen Softwarekomponenten, ohne dass Sie den Container ausführen oder einzelne Layer manuell untersuchen müssen.
Sie können durch die Datei scrollen, um die verschiedenen Abschnitte und die von ihnen enthaltenen Informationen zu sehen. Suchen Sie nach dem packages
-Array, das die erkannten Softwarekomponenten auflistet.
Drücken Sie Ctrl + X
, um nano
zu beenden.