GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

So pushen und ziehen Sie Docker-Images mit der Container Registry von DigitalOcean

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 Bilder Ihrer App einrichten.

In der Container Registry gespeicherte 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 wird „einfach funktionieren“, sobald Sie die Anmeldeinformationen Ihrer Registrierung zu Ihrer CLI hinzugefügt haben. Ebenso haben Orchestratoren wie Kubernetes keine Probleme beim Verweisen auf Images in Ihrer Registrierung.

Registrierung erstellen

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 Evaluierung 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.

Erstellen Sie eine Registrierung, indem Sie sich in das DigitalOcean Control Panel einloggen und auf den Link „Container Registry“ in der linken Seitenleiste klicken. 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, Ziffern 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.

Doctl verwenden

Das offizielle Befehlszeilendienstprogramm von DigitalOcean, Doctl, enthält ein praktisches Skript, das Ihren Docker-Client für die Arbeit mit Ihrer Container Registry konfiguriert.

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

doctl registry login

Verwendung eines DigitalOcean-API-Tokens

DigitalOcean-API-Token können zur Authentifizierung bei Containerregistrierungen verwendet werden. Generieren Sie ein Token, indem Sie auf den „API“-Link unten in der linken Seitenleiste in Ihrem DigitalOcean-Konto klicken. Klicken Sie auf „Neues Token generieren“, geben Sie ihm einen Namen und klicken Sie im folgenden Popup auf „Token generieren“.

Der Tokenwert 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 die docker login Befehl zum Verbinden mit Ihrer Registrierung:

docker login registry.digitalocean.com

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

Herunterladen einer Docker-Anmeldedatendatei

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

Diese Datei ist eine Docker-kompatible config.json die die Anmeldeinformationen für Ihre Registrierung enthält. Sie könnten es entweder mit Ihrem Haupt-~/.docker/config.json zusammenführen Datei oder verwenden Sie die --config Flag mit docker Befehle:

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

Verwendung von Docker zum Pushen und Pullen von Bildern

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:

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

Hier ist ein einfaches Beispiel für das Pushen einer Kopie eines vorhandenen Images in Ihre Registrierung:

docker pull httpd:latest
docker tag httpd:latest registry.digitalocean.com/<your-registry-name>/httpd:latest
docker push registry.digitalocean.com/<your-registry-name>/httpd:latest

Gehen Sie zum Dashboard Ihrer Registrierung in der DigitalOcean-Systemsteuerung. 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

Das Löschen von Images aus der Registrierung hinterlässt möglicherweise redundante Ebenen, die von verbleibenden Manifesten nicht mehr verwendet werden. Diese Ebenen werden weiterhin auf Ihre Speicherkosten angerechnet.

DigitalOcean bietet eine Garbage-Collection-Funktion zum Entfernen verwaister Layer und Manifeste. Auf dem Dashboard-Bildschirm Ihrer Registrierung wird eine Kachel angezeigt, wenn die Garbage Collection Speicherplatz freigeben könnte. Klicken Sie auf „Müll leeren“, um den Vorgang zu starten.

Sie sehen ein Popup-Dialogfeld, in dem Sie auswählen können, ob nicht gekennzeichnete Manifeste als Teil der Bereinigung entfernt werden sollen. Dies sind gültige Bilder, denen kein Tag zugewiesen wurde, sodass auf sie nur über ihre vollständige ID verwiesen werden kann, z. B. registry.digitalocean.com/<your-registry-name>/example-image:a1bc23 . Das Löschen dieser Manifeste ist normalerweise wünschenswert, es sei denn, Sie behalten sie absichtlich bei.

Die Garbage Collection versetzt Ihre Registrierung in einen schreibgeschützten Zustand, bis alle nicht verwendeten Ebenen gelöscht wurden. Neue Pushs werden für die Dauer der Bereinigung abgelehnt. Die Sammlung 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 an. Es ist jedoch möglich, den Prozess mit Doctl und der DigitalOcean-API auszuführen, sodass Sie Ihr eigenes Skript schreiben und es mit cron planen können .

Schlussfolgerung

Die Container Registry von DigitalOcean 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 Registrierungszugriff beschränkt.

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, sondern konzentriert sich stattdessen auf die reine und einfache Bildspeicherung.


Docker
  1. So suchen, ziehen, listen und löschen Sie Docker-Images unter Linux

  2. So installieren und hosten Sie einen OpenVPN-Server mit Docker

  3. Automatisches Erstellen und Konfigurieren benutzerdefinierter Docker-Images mit Dockerfile – Teil 3

  4. So sichern und wiederherstellen Sie Docker-Container

  5. So halten Sie Docker-Container an und setzen sie fort

So stellen Sie einen Docker-MongoDB-Container bereit und verwalten ihn

So kopieren Sie Dateien mit Docker cp in Ihren Docker-Container

So verwenden Sie Docker Commit zum Ändern von Container-Images

So kopieren Sie Dateien zwischen Host und Docker-Container

Gewusst wie:Erste Schritte mit Windows-Containern und Docker

Erste Schritte mit .NET Core und Docker und der Microsoft Container Registry