Zu Abschnitt

Was ist Skopeo?

URL kopieren

Skopeo ist ein Tool, mit dem Sie Container Images und Image Repositories auf Linux®-Systemen, unter Windows und MacOS bearbeiten, prüfen, signieren und übertragen können. Wie Podman und Buildah ist Skopeo ein Open-Source-Community-Projekt, für das kein Container Daemon ausgeführt werden muss.

Mit Skopeo können Sie Images in einer Remote Registry prüfen, ohne dass ein Download des gesamten Images mit allen Schichten erforderlich ist. Dies macht das Tool zu einer schlanken und modularen Lösung für das Arbeiten mit Container Images in verschiedenen Formaten, darunter Open Container Initiative-(OCI-) und Docker-Images.

Ein Container Image ist eine Datei mit ausführbarem Code, die in einem isolierten Prozess ausgeführt werden kann. Container Images bestehen aus zwei Teilen:

TAR-Archiv

Der erste Teil besteht aus mindestens einem TAR-Archiv des Container-Dateisystems. Ein TAR-Archiv ist eine Sammlung von Dateien, und das Dateisystemverzeichnis enthält alle Codes und Konfigurationsdateien, die zum Ausführen einer Anwendung erforderlich sind.

JSON-Datei

Der zweite Teil besteht aus JSON-Dateien, die die Anwendung beschreiben, die Konfiguration vom Entwicklungsteam zur Ausführung des Containers bereitstellen sowie Daten zwischen Anwendung und Server übertragen. Außerdem enthalten sie Metadaten zu den einzelnen Komponenten des Images sowie Informationen über deren Referenzierung.

Ein Container Repository ist eine Gruppe von Container Images, die verschiedene Versionen einer Anwendung bereitstellen. Bei der Container Registry handelt es sich um einen Server, mit dem Sie auf Images zugreifen oder neue Images hochladen können. 

Skopeo (griechisch für „remote Anzeigen") war das erste Container-Tool, das von Red Hat Engineer-Teams in Zusammenarbeit mit der Open Source Community entwickelt wurde. Skopeo wird mit Podman und Buildah zum Verwalten von OCI-Containern verwendet. Einfach ausgedrückt: Podman führt Container aus, Buildah erstellt Container, und Skopeo verschiebt Container (unter anderem). Sie können sich diese Tools wie ein Schweizer Taschenmesser für Ihre Container-Umgebung vorstellen. Mit Skopeo steht Ihnen eine flinke und vielseitige Klinge zur Verfügung.

Damit können Sie Images mit dem Befehl skopeo-inspect prüfen. Vor dem Release von Skopeo mussten Sie das gesamte Image abrufen, um es prüfen zu können, auch wenn Sie nur die Metadaten prüfen wollten. Der inspect-Befehl von Skopeo zeigt die Image-Eigenschaften an, einschließlich Schichten, Image Tags und Labels. So müssen Sie das Image nicht auf den Host herunterladen. Dadurch können Sie Informationen zum einem Repository oder Tag erfassen, ohne dafür Ihre Kapazität nutzen zu müssen. 

Außerdem können Sie mit Skopeo ein Image aus einem Repository löschen, ein externes Image Repository mit einer internen Registry synchronisieren und so mehr Sicherheit für Deployments mit einem getrennten Netzwerk (auch als Air Gap bezeichnet) erreichen. Falls für das Repository erforderlich, kann Skopeo die entsprechenden Zugangsdaten und Zertifikate zur Authentifizierung übergeben.  

Mit dem Befehl skopeo-sync können Sie direkte Registry-zu-Registry-Kopien für die Online-Nutzung sowie Registry-zu-Dateien- und Dateien-zu-Registry-Kopien zur Vorbereitung nicht verbundener Umgebungen erstellen. Im Gegensatz zum Befehl skopeo-copy, bei dem davon ausgegangen wird, dass die angeforderte Kopie eine Aktion erfordert, ist der Befehl skopeo-sync für die Beschleunigung regelmäßiger Synchronisierungen großer Repositories mit wenigen Änderungen optimiert. Der Synchronisierungsvorgang kann sowohl direkt in einer Befehlszeile verwendet werden, als auch in einer Konfigurationsdatei (config) konfiguriert werden und ermöglicht lediglich die Synchronisierung eines Teils der Tags aus einem großen Repository.

Wenn sich bei der Prüfung ergibt, dass ein Container Image von einem Speicher- oder Storage-Typ zu einem anderen kopiert werden muss, können Sie hierzu den Befehl skopeo-copy verwenden. Mit dem Tool können Sie Container Images zwischen Registries wie docker.io, quay.io und Ihrer internen Container Registry oder verschiedenen Storage-Mechanismen in Ihrem lokalen System kopieren. Die direkte Registry-zu-Registry-Kopie von Skopeo ist schnell und behält die Form unverändert bei (sowie den Manifest-Digest des Images), sofern die Ziel-Registry dies zulässt. Für das Kopieren von Images zwischen Registries ist weder die Nutzung einer lokalen Disk noch freier Speicherplatz auf einer lokalen Disk erforderlich. Skopeo kann sogar auch Images zwischen Container Engine Storage und Verzeichnissen verschieben. Das Tool wird häufig in CI/CD-Systemen verwendet, um Container Registries auf dem aktuellen Stand zu halten und den Storage auf Container-Servern zu warten.

Flexibles Tooling

Skopeo gehört zu einer modularen Suite von Container-Tools, die viele Vorteile bietet. Bedeutende Änderungen in ein monolithisches Tool einzubauen, ohne dass es für bereits vorhandene Nutzende unbrauchbar wird, kann eine Herausforderung darstellen. Kleinere, spezialisiertere Tools wie Skopeo, Podman und Buildah können schneller weiterentwickelt werden. Bei Verwendung mehrerer Tools kann jedes der Tools zu einem bestimmten Zweck eingesetzt werden. Außerdem können neue Tools hinzugefügt werden, um die Funktionalität zu erweitern oder mit Ideen und Architekturen zu experimentieren, die mit den vorhandenen Tools möglicherweise nicht kompatibel sind. Darüber hinaus ist es einfacher, Sicherheit in kleine und modulare Tools zu integrieren.

Ähnlich wie Teile der Funktionalität von Podman aus der libpod-Library stammen, über die Code mit anderen Tools geteilt werden kann, ist die Funktionalität von Skopeo ebenfalls in einer Library implementiert. Die Container/Image Library von Skopeo wird mit anderen Container-Tools wie Podman, Buildah und CRI-O geteilt und ist mit der Docker-CLI kompatibel. 

Sicherheit und Barrierefreiheit

Hauptvorteile bei der Verwendung von Podman, Skopeo und Buildah:

  • Rootless-Container-Management: Nutzerinnen und Nutzer können Container erstellen, ausführen und verwalten, ohne dass Prozesse mit Admin-Berechtigungen erforderlich sind. Dadurch wird der Zugriff auf Ihre Container-Umgebung vereinfacht, und Sicherheitsrisiken werden minimiert.
  • Architektur ohne Daemon: Für Daemons ist ein administrativer Zugriff erforderlich (wobei auch die Notwendigkeit für eine Admin-Verifizierung umgangen wird), um Dateien zu lesen, Programme zu installieren, Anwendungen zu bearbeiten usw. Dadurch werden Daemons zu einem idealen Ziel für Hacker, die die Kontrolle über Ihre Container übernehmen und das Host-System infiltrieren möchten. 
  • Native systemd-Integration: Durch den Einsatz von Podman und zugehörigen Container-Tools können Sie systemd-Unit-Dateien erstellen und Container als Systemservices ausführen.

Kubernetes 

Kubernetes ist eine Container-Orchestrierungsplattform auf Open Source-Basis, mit der viele manuelle Prozesse automatisiert werden können, die mit dem Deployment, dem Management und der Skalierung von containerisierten Anwendungen einhergehen. Wenn Sie ein CI/CD-System in Kubernetes ausführen oder Red Hat OpenShift® zum Erstellen Ihrer Container Images verwenden, müssen Sie diese Images möglicherweise auf verschiedene Container Registries verteilen. Skopeo ist ein ideales Tool für diese Aufgaben.

High-Performance Computing (HPC)

Dort, wo ein älteres Betriebssystem im Host-System ausgeführt wird, können Skopeo oder andere Tools eingesetzt werden, um von den Vorteilen der neuesten Funktionen und Updates zu profitieren. HPC-Umgebungen sind häufig dadurch eingeschränkt, dass bei Verwendung von Rootless keine Pakete auf dem Host installiert werden dürfen. Weil die Nutzung von Podman beim HPC immer beliebter wird, sind für die Ausführung des Skopeo-Containers mit Podman zur Durchführung bestimmter Aufgaben lediglich ein paar Befehle erforderlich. Ein Root-Zugriff erübrigt sich. 

Red Hat Enterprise Linux vereinfacht die Container-Entwicklung mit weniger Repositories und mehr Entwicklungstools. Container-Tools wie Podman, Buildah und Skopeo sind in einer Subskription von Red Hat Enterprise Linux enthalten und bilden eine starke Grundlage für die Unterstützung Ihrer Anforderungen in Bezug auf Container Images und Container. Neben diesen Tools bietet Red Hat auch Basis-Images, die als Grundlage für eigene Images verwendet werden können. 

Mit den Befehlszeilentools von Red Hat Enterprise Linux, dem Universal Base Image (UBI), dem Repository in Red Hat Quay und dem ergänzenden Repository können Sie Container Images ausführen, erstellen und teilen und so die Komplexität bei der Container-Entwicklung verringern.

Weiterlesen

ARTIKEL

Vergleich zwischen Containern und VMs

Linux-Container und virtuelle Maschinen (VMs) sind paketierte Computing-Umgebungen, die verschiedene IT-Komponenten vereinen und vom Rest des Systems isolieren.

ARTIKEL

Was ist Container-Orchestrierung?

Mithilfe der Container-Orchestrierung werden Deployment, Management, Skalierung und Vernetzung von Containern automatisiert.

ARTIKEL

Was ist ein Linux-Container?

Ein Linux-Container besteht aus Prozessen, die vom System isoliert sind und auf einem eigenen Image ausgeführt werden, das alle benötigten Dateien zur Unterstützung der Prozesse bereitstellt.