Skopeo 1.0 hilft beim Verschieben von Container-Images

Das bei Red Hat entwickelte Werkzeug schafft den Sprung auf die Version 1.0, die den Einsatz in Produktivszenarien impliziert.

In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen
Skopeo 1.0 hilft beim Verschieben von Container-Images

Shenzhen, Hafen von Yantian

(Bild: zhangyang13576997233 / Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Alexander Neumann

Red Hat hat die Version 1.0 von Skopeo veröffentlicht. Dabei handelt es sich um ein Werkzeug, mit dem sich Container-Images zwischen verschiedenen Arten von Container-Speichern hin und her bewegen lassen. Es ermöglicht genau genommen das Kopieren von Container-Images zwischen Container-Registries wie docker.io, kai.io und internen Container-Registries oder verschiedenen Arten von lokalen Speichersystemen.

Als eines der hervorstechendsten Merkmale beschreiben die Skopeo-Entwickler, dass man keine Root-Rechte braucht, um das Tool nutzen zu können, und dass die Images nicht lokal zu speichern sind, wenn man von einer Container-Registry in eine andere kopiert. Skopeo benötigt wohl keinen Daemon, um Operationen auszuführen.

Es ist nun wohl damit zu rechnen, das Skopeo zu einem Teil von Red Hat Enterprise Linux 8.3 wird. Im aktuellen RHEL findet sich das Werkzeug als Preview. Weitere Informationen finden Interessierte in der Red-Hat-Ankündigung sowie auf der GitHub-Seite des Skopeo-Projekts.

In der Ankündigung wird auch auf die Geschichte von Skopeo eingegangen. So war das Tool ursprünglich ein Nebenprojekt des Red-Hat-Entwicklers Antonio Murdaca, um sich die JSON-Datei von Container-Images, die in einer Container-Registry gespeichert sind, anzeigen zu lassen.

Hintergrund der Entwicklung war, dass Container-Images, egal ob OCI- (Open Container Initiative) oder Docker-Images, aus zwei Teilen bestehen. Der erste Teil ist ein Tarball des "rootfs"-Verzeichnisses, das den gesamten Code und alle Konfigurationsdateien enthält. Der zweite ist eine JSON-Datei, die die Anwendung beschreibt. Sie enthält den Einstiegspunkt und eine cmd-Datei, die den Pfad der ausführbaren Datei zum Starten des Containers definiert. Sie umfasst auch Inhalte wie Umgebungsvariablen und Arbeitsverzeichnis. Das entspricht im Grunde genommen allem, was in den Dockerfiles zu sehen ist.

Diese Tarballs können jedoch sehr groß werden. Das Problem war nun, dass es, wenn man die JSON-Datei mit der Imagae-Spezifikation anzeigen wollte, ursprünglich die einzige Möglichkeit war, ein Docker pull IMAGE; Docker inspect IMAGE durchzuführen. Eine andere Herangehensweise wurde zwischenzeitlich abgelehnt, weil sie die Docker-CLI anscheinend komplizierter gemacht hätte. In dem Zuge kam es wohl zur Aufforderung, ein Werkzeug zubauen, um die JSON-Datei herunterzuladen, was dann zu Skopeo geführt hat.

In der weiteren Geschichte wurde dann Skopeo in ein Befehlszeilen-Tool und eine separate Bibliothek (github.com/containers/image) aufgespalten. Diese Bibliothek nutzen mittlerweile Container-Engines wie Podman, Buildah und CRI-O. (ane)