Nomen est omen

Neues Tool container-diff vergleicht Container-Images
Kommentare

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: das steckt dahinter

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.

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.

Das Tool 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.

DevOps Docker Camp

Sie lernen die Konzepte von Docker und bauen Schritt für Schritt eine eigene Infrastruktur für und mit Docker auf.

Alle Termine in der Übersicht

München: 19. – 21. Februar 2018
Berlin: 14. – 16. März 2018

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -