Nomen est omen

Neues Tool container-diff vergleicht Container-Images

Melanie Feldmann

© Shutterstock / Alena Razumova

Google hat ein neues Tool Open Source gestellt, das die Unterschiede in Container-Images aufspüren kann: container-diff. Entwickler sollen so erkennen können, welche Änderungen im Dockerfile zu welchen Änderungen im Image führen.

Container und das Dockerfile-Format machen es einfacher die Laufzeitumgebung einer Anwendung zusammenzustellen und zu bauen. Dabei besteht aber die Schwierigkeit, dass es eben nicht so einfach ist, die Änderungen im Container-Image zu visualisieren, die aus einer Änderung im dazugehörigen Dockerfile resultieren können. Das kann zu überfrachteten Images führen und erschwert außerdem das Tracking. Google hat sich mit container-diff genau diesem Problem angenommen.

container-diff hilft Anwendern dabei, Änderungen in Images zu untersuchen, indem es die semantischen Änderungen zwischen Images durchleuchtet. Das bedeutet, dass container-diff auf einer niedrigen Ebene herausfindet, welche Daten sich geändert haben. Diese Infos kombiniert das Tool mit den Paketmanager-Informationen. Das Ergebnis sind Informationen in einem Format, das für Anwender auch tatsächlich lesbar ist. Die Informationen lassen sich aber auch in JSON verpacken und so automatisiert in der Pipeline weiterreichen. Das Tool kann Unterschiede in einem Container-Image in Systempaketen, Sprach-Paketen und Dateien  finden.

Lesen Sie auch: Möglichkeiten und Herausforderungen der Container-Technologie

Anwender können Images in verschiedenen Formaten angeben: vom lokalen Docker-Daemon mit dem Präfix daemon:// auf dem Image-Pfad, einer entfernten Registry mit dem Präfix remote:// oder einer Datei im .TAR-Paket, in dem Format, mit dem es mit dem Befehl docker save exportiert wird. Man kann diese Formate auch kombinieren, um den Unterschied zwischen einer lokalen Version eines Images und einer Remote-Version zu berechnen. Dies kann nützlich sein, wenn man mit neuen Builds eines Images experimentiert, das noch nicht bereit, ist gepusht zu werden. container-diff unterstützt Image-Tarballs und das Registry-Protokoll nativ, sodass es auch in Umgebungen ohne Docker-Daemon laufen kann.

Zusätzlich zum Vergleich zweier Images kann container-diff ein einzelnes Image auch allein analysieren. Dadurch kann der Anwender einen schnellen Überblick über Informationen zu einem Image erhalten, zum Beispiel zur Installation von Paketen auf System- und Sprachebene und den Inhalt des Dateisystems.

Leider funktioniert das Tool noch nicht mit Java. Es unterstützt derzeit Python- und Node.js-Pakete, die über pip oder npm installiert wurden, sowie den Vergleich von Image-Dateisystemen und Docker-History. In Zukunft möchten die Entwickler aber mehr Sprachen und Laufzeitumgebungen unterstützen, einschließlich Java, Go und Ruby.

container-diff liegt auf GitHub bereit. Einen How-to-Guide gibt es hier. Das Tool steht unter einer Apache Licence Version 2.0.

Geschrieben von
Melanie Feldmann
Melanie Feldmann
Melanie Feldmann ist seit 2015 Redakteurin beim Java Magazin und JAXenter. Sie hat Technikjournalismus an der Hochschule Bonn-Rhein-Sieg studiert. Ihre Themenschwerpunkte sind IoT und Industrie 4.0.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: