So übertragen und ziehen Sie Docker-Images mit der Container-Registrierung von DigitalOcean

0
163

Die Container Registry von DigitalOcean bietet Ihnen einen privaten Bereich in der Cloud um Ihre Docker-Images zu speichern und zu verteilen. Der Dienst bietet nicht nur ein Bildrepository, sondern integriert sich auch in die anderen Dienste von DigitalOcean. Sie können gespeicherte Images auf App Platform bereitstellen und sie mit Ihren verwalteten Kubernetes-Clustern verwenden.

Vorteile und Funktionen

Container Registry ist ein Konkurrent von Docker Hub, mit dem Sie Ihre Docker-Images in Ihrem DigitalOcean-Konto behalten können. Es ist ideal, wenn Sie mit anderen DigitalOcean-Funktionen auf diese Bilder zugreifen. Sie müssen kein separates kostenpflichtiges Docker-Hub-Konto für die privaten Images Ihrer App einrichten.

Die in der Container Registry gespeicherten Daten werden automatisch über mehrere DigitalOcean-Rechenzentrumsregionen verteilt. Dies beschleunigt den Bildabruf, wenn Sie Container starten und auf Ihren Computer ziehen. Im Gegensatz zu anderen DigitalOcean-Funktionen können Sie das Rechenzentrum einer Container Registry nicht manuell auswählen.

Die Registrierungsimplementierung von DigitalOcean ist OCI-konform, sodass Sie mit vertrauten Ökosystem-Tools damit interagieren können. Befehle wie docker push und docker pull werden “einfach funktionieren” sobald Sie die Anmeldeinformationen Ihrer Registrierung zu Ihrer CLI hinzugefügt haben. In ähnlicher Weise werden Orchestratoren wie Kubernetes keine Probleme haben, Bilder in Ihrer Registrierung zu referenzieren.

Erstellen einer Registrierung

Container Registry ist kostenlos verfügbar, aber der kostenlose Plan ist mit einigen schwerwiegenden Einschränkungen verbunden. Sie erhalten ein Image-Repository (Image-Name der obersten Ebene), 500 MB Speicherplatz und eine Obergrenze von 500 MB für ausgehende Datenübertragungen – ausreichend für die Bewertung des Dienstes, aber wahrscheinlich nicht für die langfristige Nutzung geeignet. Der Basisplan für 5 $/Monat bietet Ihnen fünf Repositories und 5 GB, während die Version für 20 $/Professional unbegrenzte Repositories und 100 GB Speicherplatz bietet. Speicherüberschüsse werden mit 0,02 $/GB in Rechnung gestellt.

Werbung
< p>Erstellen Sie eine Registrierung, indem Sie sich beim DigitalOcean Control Panel anmelden und auf „Container Registry“ klicken. Link in der linken Seitenleiste. Geben Sie Ihrer neuen Registrierung einen Namen und wählen Sie Ihren Speicherplan aus. Der Name muss in jeder DigitalOcean-Registry global eindeutig sein, sodass Ihre erste Wahl möglicherweise nicht verfügbar ist. Es muss aus bis zu 63 Zeichen bestehen, einschließlich Buchstaben, Zahlen und Bindestrichen.

Das Erstellen einer neuen Registrierung kann einige Sekunden dauern. Sobald der Vorgang abgeschlossen ist, werden Sie zum Dashboard-Bildschirm Ihrer Registrierung weitergeleitet.

Verbinden Ihrer Docker-CLI

Ihr nächster Schritt besteht darin, Ihre Docker-CLI mit der Registrierung zu verbinden. Sie müssen Docker Ihre Anmeldeinformationen für die Registrierung bereitstellen, damit es Bilder mithilfe Ihres Kontos übertragen und abrufen kann. Es gibt drei verschiedene Möglichkeiten, dies zu erreichen.

Verwendung von Doctl

Das offizielle Befehlszeilendienstprogramm von DigitalOcean, Doctl, enthält ein praktisches Skript, das Ihren Docker-Client so konfiguriert, dass er mit Ihrer Container Registry funktioniert.

Sie müssen Doctl installiert und bei Ihrem authentifiziert haben DigitalOcean-Konto, um diese Methode zu verwenden. Führen Sie den folgenden Befehl aus, um die Integration einzurichten:

Doctl Registry Login

Using a DigitalOcean API Token

DigitalOcean-API-Token können zur Authentifizierung bei Containerregistrierungen verwendet werden. Generieren Sie ein Token, indem Sie auf die Schaltfläche “API” Link unten in der linken Seitenleiste in Ihrem DigitalOcean-Konto. Klicken Sie auf “Generate New Token”, geben Sie ihm einen Namen und drücken Sie “Generate Token” im folgenden Popup.

Werbung

Das Token Wert wird angezeigt. Notieren Sie sich dies, da Sie es später nicht mehr abrufen können. Kehren Sie nun zu Ihrer CLI zurück und verwenden Sie den Docker-Login-Befehl, um eine Verbindung zu Ihrer Registrierung herzustellen:

Docker-Login-Registry.digitalocean.com

Sie werden aufgefordert, einen Benutzernamen und ein Passwort einzugeben. Verwenden Sie für beide Felder den Wert Ihres generierten API-Tokens. Docker kann jetzt mit DigitalOcean-Registrierungen interagieren, die zu Ihrem Konto gehören.

Herunterladen einer Docker-Anmeldedatendatei

Wenn Sie Wenn Sie keinen API-Schlüssel generieren oder Doctl verwenden möchten, gehen Sie zu Ihrer Container Registry-Dashboard-Seite und klicken Sie auf die blaue “Aktionen” Schaltfläche oben rechts. Wählen Sie “Docker-Anmeldeinformationen herunterladen” aus dem Menü.

Diese Datei ist eine Docker-kompatible config.json-Datei, die die Anmeldeinformationen für Ihre Registrierung enthält. Sie können es entweder mit Ihrer Hauptdatei ~/.docker/config.json zusammenführen oder das Flag –config mit Docker-Befehlen verwenden:

docker –config ~/downloaded-config.json pull registration.digitalocean.com/<your-registry-name>/example-image:latest

Using Docker to Push and Pull Images

Wenn Docker korrekt konfiguriert ist, können Sie jetzt die CLI zum Pushen und Pullen von Images mit Ihrer Container Registry verwenden. Bilder müssen im folgenden Format getaggt werden:

registration.digitalocean.com/<your-registry-name>/example-image:latest

Hier ist ein einfaches Beispiel für das Pushen einer Kopie einer vorhandenen image in Ihre Registry:

docker pull httpd:neuestes Docker-Tag httpd:neueste Registrierung.digitalocean.com/<Ihr-Registrierungsname>/httpd:neueste Docker-Push-Registrierung.digitalocean.com/<Ihr-Registrierungsname>/httpd:neueste

Werbung

Gehen Sie zum Dashboard Ihrer Registrierung in der DigitalOcean-Steuerung Tafel. Ihr neu übertragenes Image sollte in Ihrer Registrierung angezeigt werden. Sie können auf das Bild klicken, um die verfügbaren Tags anzuzeigen. Löschen Sie ein bestimmtes Tag oder alle für ein Bild verfügbaren Tags, indem Sie ganz rechts auf das Symbol mit den drei Punkten klicken und aus dem Menü auswählen.

Garbage Collection

Durch das Löschen von Images aus der Registrierung können redundante Ebenen zurückbleiben, die von verbleibenden Manifesten nicht mehr verwendet werden. Diese Layer werden weiterhin auf Ihre Speicherkosten angerechnet.

DigitalOcean bietet eine Garbage-Collection-Funktion, um verwaiste Layer und Manifeste zu entfernen. Auf dem Dashboard-Bildschirm Ihrer Registrierung wird eine Kachel angezeigt, wenn die Garbage Collection Speicherplatz freigeben könnte. Klicken Sie auf “Papierkorb leeren” um den Vorgang zu starten.

Sie sehen ein Popup-Dialogfeld, in dem Sie auswählen können, ob nicht gekennzeichnete Manifeste entfernt werden sollen im Rahmen der Aufräumarbeiten. Dies sind gültige Bilder, denen kein Tag zugewiesen ist, sodass auf sie nur über ihre vollständige ID verwiesen werden kann, z. Das Löschen dieser Manifeste ist normalerweise wünschenswert, es sei denn, Sie behalten sie absichtlich bei.

Garbage Collection versetzt Ihre Registrierung in einen schreibgeschützten Zustand, bis alle nicht verwendeten Ebenen entfernt wurden gelöscht. Neue Pushs werden für die Dauer der Bereinigung abgelehnt. Die Erfassung beginnt erst, wenn vorhandene Schreibvorgänge abgeschlossen sind, daher kann es nach dem Einleiten des Vorgangs zu einer leichten Verzögerung kommen. Der Fortschritt wird auf der Dashboard-Seite Ihrer Registrierung im Steuerungsfeld angezeigt.

DigitalOcean bietet keine automatische Garbage Collection. Es ist jedoch möglich, den Prozess mit Doctl und der DigitalOcean-API auszuführen, sodass Sie Ihr eigenes Skript schreiben und mit Cron planen können.

Fazit

DigitalOcean&#8217 ;s Container Registry bietet Ihnen eine bequeme Möglichkeit, Docker-Images zu speichern. Sie authentifizieren sich bei der Registrierung mit einem vorhandenen DigitalOcean-API-Token. Sie sollten bedenken, dass API-Token vollständigen Zugriff auf Ihr Konto gewähren – sie sind nicht auf den Registry-Zugriff beschränkt.

Anzeige

Ob Sie Container Registry zugunsten von Docker Hub verwenden sollten, hängt davon ab, was Sie mit den Images machen. Wenn Sie sie für DigitalOcean bereitstellen, ist es sinnvoll, Ihre Bilder neben Ihrer Infrastruktur zu platzieren, um die Leistung zu maximieren. Docker Hub hat jedoch Vorteile in anderen Bereichen, wie z. B. automatische Image-Neuerstellung und Schwachstellen-Scans, die Sicherheitsprobleme schnell erkennen können. Der Dienst von DigitalOcean hat keines davon und konzentriert sich stattdessen auf die reine und einfache Bildspeicherung.