Was ist eine Container Registry?

Luftaufnahme von Tokio

Autoren

Phill Powell

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Was ist eine Container Registry?

Eine Container Registry ist ein Daten-Repository (oder mehrere Repositorys), das Container-Images für die Speicherung und den Zugriff bereitstellt. Container-Images sind unveränderliche statische Dateien, die ausführbaren Code enthalten und isoliert auf der IT-Infrastruktur ausgeführt werden.

Ein entscheidender Vorteil von Container-Registrierungsstellen ist die einfache Anbindung an Container-Orchestrierungssysteme oder -Plattformen wie Kubernetes und Docker.

Während der containerbasierten Anwendungsentwicklung können Teams Container-Registries auch als DevOps nutzen und so eine optimierte Integration mit Continuous Integration (CI) Workflows und Continuous Delivery (CD) Workflows ermöglichen. Beide Workflows gehören zu den Kernaktivitäten der Softwareentwicklung. CI und CD basieren beide auf Automatisierung und sind für häufige Codeänderungen ausgelegt. Sie unterscheiden sich vor allem darin, dass CI den Code für eine eventuelle Veröffentlichung vorbereitet, während CD die tatsächliche Veröffentlichung des Codes betrifft. Container-Registries unterstützen beide Workflows.

Es gibt zwei Arten von Container Registries:

  • Öffentliche Register bieten Möglichkeiten zur Optimierung des Datentransfers und eine lockere Zugriffskontrolle, aber es fehlt an fortschrittlichen Sicherheitsprotokollen.
  • Private Repositories werden in der Regel in Situationen verwendet, die einen sichereren Betrieb und einen strengeren Schutz von Workloads erfordern.
Luftaufnahme einer Autobahn

Bleiben Sie in der Cloud

Abonnieren Sie den wöchentlichen Think-Newsletter und erhalten Sie Tipps von Experten zur Optimierung von Multi-Cloud-Einstellungen in Zeiten von KI.

Wie funktionieren Container-Registries?

Eine Container Registry speichert Container-Images und ermöglicht es Benutzern, Images in die Registry hochzuladen (ein Prozess, der als „Pushing“ bezeichnet wird) oder sie auf ein anderes System herunterzuladen (ein Prozess, der als „Pulling“ bezeichnet wird).

Ein Container Registry kann allein oder in Verbindung mit anderen Container Registries verwendet werden. Wenn mehrere Container zu einer einzigen operativen Einheit für die Bereitstellung von Cloud-Diensten zusammengefasst werden, ähnelt deren Funktionalität einem Ökosystem, dessen Bewohner eng zusammenarbeiten, um ein gemeinsames Ergebnis zu erzielen.

Objektspeicher

Container Registries verwenden Objektspeicher, um Metadaten über Container-Images zu manifestieren. Dies bietet zwar eine Möglichkeit, solche Metadaten erfolgreich zu übertragen, ist aber von Natur aus begrenzt. Bei Daten, die beispielsweise mehrere Images enthalten können, ist die Anzahl der verfügbaren Listing-Tags begrenzt.

Abhängigkeitscontainer

Abhängigkeitscontainer sind eine weitere Speichermethode. Sie ermöglichen die Verwaltung, Registrierung und Auflösung von Abhängigkeiten in einer Anwendung. Im Kontext der Programmierung beschreiben Abhängigkeiten Situationen, in denen ein Objekt oder ein Prozess auftreten muss, bevor ein anderes Objekt wie angeordnet funktionieren kann.

Solche Abhängigkeiten werden von Abhängigkeitscontainern verwaltet, die das Testen vereinfachen, die Skalierbarkeit verbessern und die Notwendigkeit der Codekopplung (eine zu starke Abhängigkeit zwischen den programmierten Objekten) minimieren, die zu Fehlern und Versionskontrollproblemen führen kann.

Authentifizierung

Angesichts des dringenden und anhaltenden Bedarfs an Online-Sicherheit ist die Authentifizierung von Personen, denen Zugriff auf Repositorys gewährt wird, von entscheidender Bedeutung. Das hängt von einer Reihe von Berechtigungen ab, die speziell für dieses Container Registry gelten. Berechtigungen legen fest, wer berechtigt ist, Computerressourcen aus einer Container Registry zu nutzen.

Container-Laufzeiten

Das Konzept der Laufzeiten ist von entscheidender Bedeutung. Bei Container-Laufzeiten handelt es sich um Software, die den Betrieb von Containern innerhalb eines Hostsystems ermöglicht. Laufzeiten verwenden eine Reihe von Schritten zum Erstellen von Containern. Diese Schritte umfassen den gesamten Prozess der Erstellung von Containern und der Initialisierung ihrer Umgebung nach den Vorgaben eines Container-Images, das die App und ihre Abhängigkeiten enthält.

Nachdem die Container erstellt wurden, bleibt die Laufzeit aktiv beteiligt – sie verwaltet die Container-Lebenszyklen, verfolgt ihre kontinuierliche Funktionsfähigkeit und entfernt ihre Ressourcen, wenn sie nicht mehr benötigt werden.

Lastausgleich

Container-Registries unterstützen auch den Lastausgleich. Beim containernativen Lastausgleich wird der Balancer-Datenverkehr direkt an die Bereiche weitergeleitet, die diesen Datenverkehr empfangen sollen. Auf diese Weise arbeiten Container-Registries Hand in Hand mit Load Balancern, damit der Datenverkehr nicht durch eine zusätzliche Netzwerkschleife geleitet werden muss.

AI Academy

KI-Bereitschaft mit Hybrid Cloud

Das Programm, das von führenden IBM Experten geleitet wird, soll Führungskräften dabei helfen, das nötige Wissen zu erwerben, um die Prioritäten für KI-Investitionen zu setzen, die zu mehr Wachstum führen.

Vorteile der Container Registry

Container-Registries bieten zahlreiche Vorteile, darunter die folgenden:

Operative Klarheit

Container Registry bieten mehr betriebliche Klarheit, da sie einen dedizierten Ort für die Aufbewahrung von Images zur langfristigen Speicherung haben. Produktionsdesigner und Softwareentwickler haben oft mit einer Überfülle an Assets zu kämpfen. Container-Registries entschärfen dieses Problem, indem sie die Assets auf einen einzigen Standort beschränken.

Optimierte Leistung

Container Registry helfen dabei, Leistungsverzögerungen zu vermeiden, die auftreten können, wenn der genaue Speicherort von Images nicht bekannt ist – insbesondere in Zeiten hoher Priorität. Container Registry lösen dieses Problem, indem sie einen Bestand bereitstellen, der jederzeit überprüft und bestätigt werden kann.

Single-Source-of-Truth (SSOT)

Registries schaffen eine Single-Source-of-Truth (SSOT) für jede Komponente oder Anwendung, sodass immer Transparenz über die Zusammensetzung dieser Komponente oder Anwendung besteht. Durch die Verwendung von Container-Registries wird sichergestellt, dass die letzte Iteration für die Verwendung oder Replikation bereit ist, um eine optimale Versionskontrolle zu gewährleisten.

Erhöhte Sicherheit

Container-Registries bieten erweiterte Sicherheitsmaßnahmen für Bilder. Zugriffsprotokolle tragen dazu bei, dass Bilder aus Sicherheitsgründen geschützt sind. In der Zwischenzeit können Benutzer durch das Scannen von Sicherheitslücken tief in ihre Bilder blicken und versteckte Probleme in ihnen erkennen.

Anwendungsfälle für Container Registry

Bei den folgenden Aktivitäten werden Container-Registries in großem Umfang verwendet:

Softwareentwicklung

Softwareentwicklung ist der primäre Anwendungsfall für Container-Registries. Deshalb wurden sie überhaupt erst geschaffen – um Software-Entwickler zu unterstützen, indem sie einen Arbeitsbereich für die Lagerung, den Zugriff und die gemeinsame Nutzung von Images bereitstellen.

Bereitstellung von Enterprise-Software

Private Container-Registries werden in der Regel als notwendige Infrastruktur für Unternehmen betrachtet, die Softwareanwendungen intern entwickeln und bereitstellen. Private Registries geben Benutzern ein höheres Maß an Kontrolle über Software-Lieferketten.

Microservices

Viele Container-Registries unterstützen Benutzer von Microservices, indem sie den Prozess des Aufsuchens und Herstellens einer Verbindung mit bestimmten Microservices in einem Container-Cluster verdeutlichen. Solche Registries bieten Domain Name System-Services an, die Images Namen und virtuelle IPs zuordnen.

Anwendungsbereitstellung

Container-Registries unterstützen die schnelle Iteration von Apps, da sie modular und kompakt sind. Andere Vorteile der Bereitstellung sind die Portabilität und Konsistenz der Registries.

Wissenschaftliche Forschung

Container Registries werden für spezielle wissenschaftliche Zwecke angepasst, z. B. zur Unterstützung genetischer Daten und zur Förderung der Genomforschung. Forschungsergebnisse können problemlos in anderen Formaten reproduziert werden, sodass wichtige Codes und Artefakte gemeinsam genutzt werden können.

Docker und Kubernetes

Es gibt zwei Hauptanbieter von Container-Orchestrierung, die die Verwendung von Container-Registries dominieren:

Docker

Docker ist ein Container-Orchestrierungssystem, das 2013 entwickelt und eingeführt wurde, um die Komplexität der Erstellung, Bereitstellung und Ausführung von Apps zu reduzieren. Docker hat in letzter Zeit an Popularität gewonnen, da es als einfache Möglichkeit angesehen wird, leichte, tragbare und in sich geschlossene Container zu erstellen, die trotz der Infrastruktur auf jeder Plattform ausgeführt werden können. Dieser Ruf für eine einfache Bedienung hat dazu beigetragen, dass Docker zu einer bevorzugten Option für diejenigen geworden ist, die Anwendungen für künstliche Intelligenz (KI) und maschinelles Lernen (ML) bereitstellen.

Aus dem gleichen Grund bieten Docker-Container höchste Portabilität, da sie unabhängig von der Infrastruktur von einem Rechner auf einen anderen verschoben werden können. Auch hier sehen wir einen Vorteil darin, dass es mit Docker relativ einfach ist, KI- und ML-Apps in alternativen Umgebungen wie lokalen Rechnern, Edge-Geräten oder Cloud-Servern einzuführen.

Kubernetes

Kubernetes ist eine Open Source-Plattform für die Containerorchestrierung. Kubernetes wurde ebenfalls 2013 ins Leben gerufen und nach dem griechischen Begriff für „Pilot“ benannt. Kubernetes wird verwendet, um verschiedene Softwareprozesse wie Verwaltung, Bereitstellung und Skalierung zu automatisieren.

In einem Kubernetes Service sind ein oder mehrere Computer (die entweder virtuelle Maschinen oder Bare Metal Servers sein können) in einem Cluster miteinander verbunden, in dem Container-Workloads unterschiedlicher Größe und Art ausgeführt werden können. Kubernetes wird häufig mit Helm-Diagrammen bereitgestellt. Dabei handelt es sich um Dateisammlungen, mit denen die verschiedenen Ressourcen eines Kubernetes-Clusters beschrieben und diese kombinierten Ressourcen dann als App verpackt werden.

Kubernetes ermöglicht die Verwendung von containerisierten ML-Anwendungen und eine einfache Skalierung und unterstützt ML-Frameworks und -Tools. Kubernetes kann auch als Plattform für KI-Trainings-Workloads verwendet werden.

Docker und Kubernetes ähneln sich in vielerlei Hinsicht. Sie unterscheiden sich jedoch in ihrem Umfang, da Docker im Kern eine Laufzeit für Container ist, während Kubernetes eine vollständige Plattform ist, die die Ausführung und Verwaltung von Containern über mehrere Container-Laufzeiten ermöglicht. Um den Unterschied zwischen den beiden zu verdeutlichen, sollten Sie bedenken, dass Kubernetes so groß ist, dass Docker nur eine der zahlreichen Container-Laufzeiten ist, die Kubernetes unterstützt.

Andere führende Anbieter von Container Registry

Der Markt für Anbieter von Container Registry entwickelt sich ständig weiter, und es gibt immer wieder neue Akteure, die in den Markt eintreten oder ihn verlassen. Die hier aufgeführten Anbieter haben sich jedoch einen dauerhaften Ruf auf diesem Markt aufgebaut:

  • Alibaba: Die Alibaba Group hat sich zum Ziel gesetzt, „es einfacher zu machen, überall Geschäfte zu machen“. Die Cloud Container Registry von Alibaba ermöglicht die Replikation von Images zwischen Instanzen (Betriebsentitäten), die zum selben Konto gehören. Alibaba Cloud Container Registry wurde entwickelt, um Images während ihrer gesamten Lebenszyklen zu verwalten.
  • Amazon: Amazon Web Services (AWS) betreibt Amazon Elastic Container Registry (ECR), das den Einsatz von Amazon Inspector beinhaltet, der das Scannen von Images auf Sicherheitslücken verwaltet. ECR ermöglicht auch eine konten- und regionsübergreifende Replikation, die einen einfacheren Zugriff auf Images ermöglicht.
  • DockerHub: Docker betreibt eine eigene Image-Ressource namens DockerHub, die kostenlosen Zugriff auf mehr als 100.000 Images bietet, die von Docker-Benutzern, Softwareanbietern und Open-Source-Projekten geteilt werden. Ein kostenpflichtiger Docker-Container-Registry-Service ist auch für die private Nutzung verfügbar. DockerHub verwendet eine Docker-Befehlszeilenschnittstelle (Docker CLI), die wichtige Operationen wie Anmeldung, Push und Pull ermöglicht.
  • GitHub: GitHub gehört heute zu Microsoft und wurde 2007 ins Leben gerufen. Die Plattform hat breite Unterstützung bei den Entwicklern gefunden, die ihre Fähigkeit schätzen, den Austausch von Code, die Zusammenarbeit und die Codeverwaltung zu fördern. (Es ist anzumerken, dass GitHub zwar oft fälschlicherweise für Open Source Software gehalten wird, aber in Wirklichkeit proprietäre Software ist.)
  • GitLab: GitLab wird oft mit GitHub verwechselt. GitLab wurde 2014 gegründet. Die GitLab Container Registry ist eine sichere private Registry für Container-Images. Damit können Images sowohl erstellt als auch veröffentlicht werden. Die Gitlab Container Registry arbeitet mit Open-Source-Software. Die neueste Version (jetzt in der Beta-Version) bietet verbesserte Sortier- und Filterfunktionen.
  • Google: Die Container-Registry „Artifact Registry“ von Google Cloud ist in die Tools und Laufzeiten von Google Cloud integriert und unterstützt die Verwendung automatisierter Pipelines. Google war auch der Urheber von Kubernetes. Das Projekt wird jetzt durch die Bemühungen von Mitwirkenden verwaltet und die Marke liegt im Besitz der Cloud Native Computing Foundation. Öffentliche Cloud-Provider bieten jetzt jeweils ihre eigene Version von Kubernetes als Managed Service an.
  • IBM: Mit IBM Cloud Container Registry können Benutzer ganz einfach ihre eigene Registry starten und private Images in die Registry übertragen, um sie mit dem IBM Cloud Kubernetes Service zu verwenden. Benutzer profitieren vom Datenschutz einer eigenen, vollständig verwalteten Registry. Der Service, der kostenlos getestet werden kann, basiert auf einer nutzungsbasierten Abrechnung, d. h. die Nutzer zahlen nur für das, was sie verbrauchen.
  • Microsoft: Die Azure-Plattform von Microsoft umfasst die Azure Container Registry (ACR), die Docker-Images und Open Container Initiative (OCI)-Images enthält und OCI-Artefakte und Helm-Charts unterstützt. Die verbundene Registry-Funktion (Teil der Premium-Dienstebene des Programms) von ACR erstellt ein lokales oder Remote-Replikat, das Container und OCI-Artefakte mit dem cloudbasierten ACR synchronisiert. ACRs können sowohl mit Windows- als auch mit Linux-Images arbeiten. Eine Möglichkeit, mit Computerprogrammen zu interagieren, ist das Schreiben und Eingeben von Textzeilen, die als Befehlszeilen bezeichnet werden. Wenn ein Betriebssystem diese Methode der Interaktion verwendet, spricht man von einer Befehlszeilenschnittstelle (Command-Line Interface, CLI). Obwohl die meisten Computerbenutzer inzwischen auf grafische Benutzeroberflächen (GUIs) zurückgreifen, wird die Verwendung von CLI immer noch von einigen bevorzugt, insbesondere von denjenigen, die Programme durch das Schreiben von Skripten automatisieren möchten. Azure bietet Anwendern die Flexibilität, das beliebte Docker CLI zu verwenden, um wichtige Container-Image-Operationen wie Login, Push und Pull auszuführen.
  • Red Hat: Red Hat fördert seit seiner Gründung im Jahr 1993 die Linux-basierte Programmierung. Mit der Container Registry OpenShift Container Platform (OCP) können Benutzer bei Bedarf automatisch auf Image-Repositories zugreifen und erhalten einen Standard-Speicherort für die Images, die aus ihren Anwendungs-Builds resultieren.
Weiterführende Lösungen
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloud ist eine vollständig verwaltete OpenShift Container Platform (OCP).

Red Hat OpenShift erkunden
Container-Lösungen

Container-Lösungen führen Container-Workload aus und skalieren sie mit Sicherheit, Open-Source-Innovation und schneller Bereitstellung.

Container erkunden
Cloud-Beratungsleistungen 

Schalten Sie mit IBM Cloud Consulting Services neue Funktionen frei und steigern Sie die geschäftliche Agilität. Entdecken Sie, wie Sie mit Hybrid-Cloud-Strategien und Expertenpartnerschaften gemeinsam Lösungen entwickeln, die digitale Transformation beschleunigen und die Leistung optimieren können.

Cloud-Services
Machen Sie den nächsten Schritt

Modernisieren Sie Ihre Infrastruktur mit den Containerlösungen von IBM. Mit der umfassenden Container-Plattform von IBM können Sie containerisierte Workloads flexibel, sicher und effizient über verschiedene Umgebungen hinweg ausführen, skalieren und verwalten.

Containerlösungen kennenlernen Kostenloses IBM Cloud-Konto erstellen