Alles, was Sie über Docker Hub wissen sollten

Eine Einführung in Docker Hub

In dieser Anleitung werden wir uns mit Docker Hub beschäftigen. Wir werden lernen, wie man es verwendet, wie man eigene Images erstellt und wie es beim Veröffentlichen und Abrufen von Images hilft. Wir werden auch einige populäre Repositories auf Docker Hub erkunden. Sie finden die offizielle Seite von Docker-Hub hier.

Vorbedingungen

Grundlegende Kenntnisse über Docker und Vertrautheit mit Windows- und Linux-Umgebungen sind erforderlich. Diese Anleitung verwendet Docker Desktop zum Üben, insbesondere zum Erstellen und Übertragen von Images zu Docker Hub. Windows- und Mac-Nutzer können das Programm hier herunterladen und installieren, Linux-Nutzer können dieser Anleitung folgen.

Was ist Docker Hub?

Docker Hub ist ein von Docker Inc bereitgestellter Registrierungsdienst für Repositories.

Es ermöglicht uns, Docker-Images von Docker Hub abzurufen und dorthin zu übertragen. Vergleichen Sie es mit GitHub, wo wir Quellcode abrufen und hochladen, hier laden wir Container-Images herunter oder veröffentlichen sie. Es ist ein Cloud-basiertes Online-Repository für öffentliche und private Repositories. Öffentliche Repositories sind für alle zugänglich, private nur für den jeweiligen Eigentümer. Für die private Speicherung von mehr als einer bestimmten Anzahl von Repositories fallen Kosten an.

Docker Hub-Funktionen

Docker Hub bietet eine Vielzahl von Funktionen:

#1. Image-Repositories

Ermöglicht das Suchen und Abrufen von Container-Images von Docker Hub.

Ebenso können Bilder als öffentliche oder private Repositories an Docker Hub übertragen werden.

#2. Teams und Organisationen

Es erlaubt die Erstellung von Arbeitsgruppen und die Übertragung privater Repositories, die nur innerhalb der Organisation nutzbar sind. So wird der Zugriff auf Container-Images gesteuert.

#3. GitHub- und Bitbucket-Integration

Ermöglicht die Integration mit Quellcode-Repositories wie GitHub und BitBucket.

#4. Automatisierte Builds

Wenn Änderungen im Quellcode an die Quellcode-Repositories übertragen werden, erkennen GitHub oder BitBucket diese automatisch, erstellen Container-Images und laden diese zu Docker Hub hoch.

#5. Webhooks

Nachdem Bilder erfolgreich mit einem Webhook übertragen wurden, wird eine Aktion ausgelöst, um Docker Hub mit anderen Diensten zu integrieren.

#6. Offizielle und Publisher-Images

Von Docker bereitgestellte qualitativ hochwertige Bilder gelten als offizielle Images und können genutzt werden. Ebenso sind hochwertige Images von externen Anbietern (auch zertifizierte Images genannt) Publisher-Images. Diese bieten Unterstützung und Kompatibilitätsgarantie mit Docker Enterprise. Später werden wir einige zertifizierte Bilder genauer betrachten.

Erstes Repository erstellen

Dazu ist die Anmeldung bei Docker-Hub mit Ihren Anmeldedaten notwendig. Wenn Sie noch kein Konto haben, können Sie eines erstellen, indem Sie auf der Webseite auf „Anmelden“ klicken. Nach der Anmeldung erstellen Sie ein Repository über die Schaltfläche „Repository erstellen“ auf der Willkommensseite.

  • Nachdem Sie „Repository erstellen“ angeklickt haben, müssen Sie einen Namen für Ihr Repository vergeben.

  • Wählen Sie die Sichtbarkeitsoption (öffentlich oder privat).

Sie können auch Ihre Quellcode-Repositories wie GitHub und BitBucket über die Build-Einstellungen integrieren, dies ist aber optional und kann später erfolgen.

  • Klicken Sie auf „Erstellen“, wenn Sie fertig sind.

Glückwunsch! Ihr erstes Repository wurde erstellt und sollte wie folgt aussehen:

Docker Hub bietet ein privates Repository kostenlos an. Für mehr private Repositories kann das Konto auf einen kostenpflichtigen Plan erweitert werden.

Öffnen Sie nun das zuvor heruntergeladene und installierte Docker Desktop-Tool/Terminal und melden Sie sich mit dem folgenden Befehl bei Docker Hub an:

docker login

Images erkunden

Es gibt zwei Möglichkeiten, öffentliche Repositories und Bilder auf Docker Hub zu durchsuchen: über die Docker Hub-Website oder mit dem Befehlszeilentool (folgender Befehl). Angenommen, wir suchen nach dem MySQL-Repository-Image:

docker search mysql

Ein Image herunterladen

Bilder können über den Befehl ‚pull‘ heruntergeladen werden:

# docker pull mysql

Wenn bereits ein MySQL-Image vorhanden ist, wird es durch diesen Befehl automatisch auf die neueste Version aktualisiert. Es gibt viele MySQL-Images auf Docker Hub, da jeder Images hochladen kann. Es liegt an uns, basierend auf den Anforderungen das passende Image auszuwählen.

Nehmen wir an, wir möchten ein Bitnami/Mysql-Image abrufen:

# docker pull bitnami/mysql

Ein Image erstellen

Dieser Prozess erfordert ein Dockerfile. Stellen Sie sich ein Dockerfile als eine Bedienungsanleitung vor, die Docker sagt, was es zusammenbauen soll. Es ist eine Konfigurationsdatei mit Anweisungen zum Zusammenbauen.

Wie funktioniert es?

Docker liest die Anweisungen aus einem Dockerfile und erstellt automatisch Images. Ein Docker-Image ist ein mehrschichtiges Dateisystem mit schreibgeschützten Schichten, wobei jede Schicht eine Anweisung im Dockerfile darstellt. Führen Sie diese Schritte aus, um ein Image mit Dockerfile zu erstellen:

Erstellen Sie eine Dockerfile, die die Anwendungskonfiguration enthält:

# sudo vim Dockerfile

Hinweis: Der Dateiname sollte „Dockerfile“ sein (mit großem „D“).

FROM ubuntu:16.04
MAINTAINER [email protected]
RUN apt-get update
RUN apt-get install –y mysql
CMD echo "My first image created."

Einige wichtige Schlüsselwörter im Dockerfile:

  • # – Symbole für Kommentare
  • „FROM“ – Definiert das Basisimage
  • „MAINTAINER“ – Der Verantwortliche für das Image
  • „RUN“ – Führt Anweisungen im Image aus (z.B. System aktualisieren und MySQL installieren)
  • „CMD“ – Führt Befehle nach dem Start des Containers aus
  • „COPY“ – Kopiert Dateien vom Host-Betriebssystem in den Container
  • „EXPOSE“ – Gibt den Port an, auf dem der Container läuft

Erstellen Sie das Docker-Image mit folgendem Befehl:

Syntax:

docker build -t <Ihr_Benutzername>/repo-name .

# docker build -t asadali08537/first-repo .

Der Name des Bildes wird verwendet, und „.“ steht für das aktuelle Arbeitsverzeichnis, wo Docker nach dem Dockerfile sucht. „-t“ wird verwendet, um das Bild zu taggen. Sie sollten eine ähnliche Ausgabe sehen:

Testen Sie das Image mit folgendem Befehl:

docker run asadali08527/first-repo

Dieser Befehl installiert MySQL mit den Updates und gibt eine Echo-Nachricht aus.

Ein Image hochladen

Nachdem das Image erstellt und ausgeführt wurde, kann es mit dem „push“-Befehl auf Docker Hub hochgeladen werden:

docker push asadali08527/first-repo

Sie können die Image-Tags und den Status auf Docker Hub überprüfen:

Was sind Docker-zertifizierte Images?

Dies sind offizielle Images von Anbietern oder Mitwirkenden. Ein Image wird nur dann von Docker Hub zertifiziert, wenn es die Regeln, Standards und Richtlinien von Docker Hub erfüllt. Es muss bestimmte Tests bestehen.

Docker Hub bietet das Tool inspectDockerImage, mit dem Anbieter Images und Plugins selbst zertifizieren können.

Hinweis:

Um ein Image als Docker-zertifiziert zu veröffentlichen, müssen Images und Plugins zunächst mit dem inspectDockerImage Tool selbst zertifiziert und getestet werden. Nach der erfolgreichen Zertifizierung und Einreichung wird Docker Hub die Zertifizierung durchführen. Inhalte, die keine zertifizierte Umgebung erfordern, können nicht als zertifiziert veröffentlicht werden.

Beliebte Images auf DockerHub

Auf Docker Hub gibt es viele kuratierte und optimierte Bilder.

Die Popularität hängt von Pulls, Marktpräsenz, Bewertungen usw. ab. Eine detaillierte Liste der beliebtesten Repositories gibt es auf der Docker-Hub Webseite. Die Verwendung eines Images hängt auch vom Betriebssystem und seiner Architektur ab. Bevor Sie ein Image abrufen, sollten Sie folgende Schlüsselfaktoren berücksichtigen:

  • Suchen Sie mit Tags nach einer bestimmten Version (meistens der neuesten).
  • Wählen Sie das Image mit den meisten Downloads und Sternen.
  • Überprüfen Sie die Updates (Wann war die letzte Aktualisierung?).
  • Überprüfen Sie den Typ (Verifiziert oder offiziell von Docker zertifiziert).

Webhooks

Ein Webhook ist ein Web-Callback, der ereignisgesteuert Echtzeitinformationen von einer Anwendung zu einer anderen liefert. Docker Hub bietet ebenfalls diese Funktion.

Es handelt sich um eine HTTP-Push-API, die durch benutzerdefinierte Ereignisse ausgelöst wird. Webhooks können verwendet werden, um Anwendungen oder Dienste zu benachrichtigen, die die entsprechenden Images verwenden. Sie werden oft als Pipeline von Ereignissen konfiguriert, wobei jeder Upload neuer Bilder Testanwendungen auslöst, um Testfälle auszuführen. Bei Erfolg wird die Containerbereitstellung ausgelöst und bei erfolgreicher Bereitstellung andere Ereignisse zur Protokollierung der Änderungen.

Fazit

Sie haben jetzt ein grundlegendes Verständnis von Docker Hub und wie man Images sucht, erstellt und überträgt. Beachten Sie, dass öffentliche Images für alle sichtbar sind.

Wenn noch nicht geschehen, lesen Sie diese Docker-Installationsanleitung.