Docker-Tutorial: Beginnen Sie mit Docker Hub

Die Stärke von Docker-Images besteht darin, dass sie leicht und portabel sind - sie können frei zwischen Systemen verschoben werden. Sie können problemlos eine Reihe von Standardabbildern erstellen, diese in einem Repository in Ihrem Netzwerk speichern und im gesamten Unternehmen freigeben. Sie können sich auch an Docker Inc. wenden, das verschiedene Mechanismen für die öffentliche und private Freigabe von Docker-Container-Images erstellt hat.

Am bekanntesten ist Docker Hub, der öffentliche Austausch des Unternehmens für Containerbilder. Viele Open-Source-Projekte bieten dort offizielle Versionen ihrer Docker-Images an. Dies ist ein praktischer Ausgangspunkt, um neue Container zu erstellen, indem Sie auf vorhandenen aufbauen oder einfach nur Standardversionen von Containern erhalten, um ein Projekt schnell zu starten. Und Sie erhalten kostenlos ein eigenes privates Docker Hub-Repository. 

Entdecken Sie Docker Hub

Der einfachste Weg, Docker Hub zu erkunden, besteht darin, es im Internet zu durchsuchen. Über die Weboberfläche können Sie nach öffentlich verfügbaren Containern nach Name, Tag oder Beschreibung suchen. Von dort aus ist in der Open-Source-Version von Docker alles enthalten, was Sie zum Herunterladen, Ausführen und anderweitigen Arbeiten mit Container-Images von Docker Hub benötigen - hauptsächlich die Befehle docker pullund docker push.

Docker Hub-Preise

Der Erhalt von Containern von Docker Hub ist kostenlos. Wenn Sie Container auf Docker Hub hosten möchten und bescheidene Anforderungen haben, müssen Sie möglicherweise auch nicht dafür bezahlen. Der kostenlose Plan, der ein privates Repository und einen parallelen Build unterstützt (dazu später mehr), reicht normalerweise für einen einzelnen Entwickler aus. Die Preise für andere Pläne (mehr private Repositories, mehr parallele Builds) liegen zwischen 7 und 100 US-Dollar pro Monat.

Unabhängig davon, welche Ebene Sie verwenden, legt Docker keine feste Grenze für Bildgrößen oder Pull-Anforderungen fest. Das heißt, alles, was größer als mehrere Gigabyte ist, wird unpraktisch - sowohl für Sie als auch für andere, die für ihre Projekte arbeiten.

Docker Hub-Organisationen für Teams

Wenn Sie Docker Hub mit anderen verwenden, können Sie eine Organisation erstellen, mit der eine Gruppe von Personen bestimmte Image-Repositorys gemeinsam nutzen kann. Organisationen können weiter in Teams mit jeweils eigenen Repository-Berechtigungen unterteilt werden. Eigentümer einer Organisation können neue Teams und Repositorys erstellen und anderen Benutzern Lese-, Schreib- und Administratorrechte für Repositorys zuweisen. 

Beachten Sie, dass für Docker Hub Organisationsnamen mit mehr als drei Zeichen erforderlich sind. Mit anderen Worten, Sie können keine Organisation mit dem Namen "dev" haben. Dies ist anscheinend eine architektonische Einschränkung, die Docker nicht umgehen kann. 

Docker Hub-Repositorys

Docker Hub-Repositorys können öffentlich oder privat sein. Öffentliche Repos können von jedem durchsucht und abgerufen werden, auch von Personen ohne Docker Hub-Konto. Private Repos stehen nur Benutzern zur Verfügung, denen Sie ausdrücklich Zugriff gewähren, und sie können nicht öffentlich durchsucht werden. Beachten Sie, dass Sie ein privates Repo öffentlich machen können und umgekehrt.

Beachten Sie auch, dass Sie, wenn Sie ein privates Repo öffentlich machen, sicherstellen müssen, dass der offengelegte Code für die Verwendung durch alle und verschiedene lizenziert ist. Docker Hub bietet keine Möglichkeit, eine automatische Lizenzanalyse für hochgeladene Bilder durchzuführen. das liegt alles an dir.

Während es oft am einfachsten ist, ein Repository über die Weboberfläche zu durchsuchen, können Sie über die Docker-Befehlszeile oder -Shell auch nach Bildern suchen. Verwenden Sie docker searchdiese Option , um eine Suche auszuführen, bei der die Namen und Beschreibungen der übereinstimmenden Bilder zurückgegeben werden.

Bestimmte Repositorys sind als offizielle Repositorys gekennzeichnet. Diese bieten kuratierte Docker-Images, die als Standardversionen eines Containers für ein bestimmtes Projekt oder eine bestimmte Anwendung (z. B. Nginx, Ubuntu, MySQL) gedacht sind. Docker unternimmt zusätzliche Schritte, um die Herkunft und Sicherheit der offiziellen Bilder zu überprüfen.

Wenn Sie selbst ein Projekt verwalten, das Sie als offizielles Repository in Docker Hub markiert haben möchten, stellen Sie eine Pull-Anforderung, um den Prozess zu starten. Beachten Sie jedoch, dass es an Docker liegt, zu bestimmen, ob Ihr Projekt aufgenommen werden sollte.

Docker Push und Docker Pull

Bevor Sie Container-Images zum und vom Docker Hub verschieben und ziehen können, müssen Sie mit dem docker loginBefehl eine Verbindung zum Docker Hub herstellen , in dem Sie Ihren Docker Hub-Benutzernamen und Ihr Kennwort eingeben. Standardmäßig gelangen docker loginSie zu Docker Hub. Sie können ihn jedoch verwenden, um eine Verbindung zu einem kompatiblen Repository herzustellen, einschließlich privat gehosteter.

Im Allgemeinen ist die Arbeit mit Docker Hub über die Befehlszeile recht einfach. Verwenden Sie diese Option docker searchwie oben beschrieben, um Bilder zu suchen,  docker pullein Bild nach Namen abzurufen und ein Bild nach Namen  docker pushzu speichern. A docker pullruft standardmäßig Bilder aus Docker Hub ab, es sei denn, Sie geben einen Pfad zu einer anderen Registrierung an. 

Beachten Sie, dass es eine gute Idee ist, ein Bild vorher zu markieren, wenn Sie es verschieben. Tags sind optional, helfen Ihnen und Ihrem Team jedoch dabei, Bildversionen, Funktionen und andere Merkmale zu unterscheiden. Ein üblicher Weg, dies zu tun, besteht darin, das Taggen als Teil Ihres Image-Erstellungsprozesses zu automatisieren, indem Sie beispielsweise Versions- oder Zweiginformationen als Tags zu Bildern hinzufügen.

Automatisierte Builds auf Docker Hub

Auf Docker Hub gehostete Container-Images können automatisch aus ihren in einem Repository gehosteten Komponenten erstellt werden. Bei automatisierten Builds werden alle Änderungen am Code im Repo automatisch im Container angezeigt. Sie müssen ein neu erstelltes Image nicht manuell an Docker Hub senden.

Automatisierte Builds funktionieren, indem ein Image mit einem Build-Kontext verknüpft wird, dh einem Repo mit einer Docker-Datei, die auf einem Dienst wie GitHub oder Bitbucket gehostet wird. Obwohl Docker Hub Sie auf einen Build alle fünf Minuten beschränkt und Git-Großdateien oder Windows-Container noch nicht unterstützt werden, sind automatisierte Builds dennoch nützlich für Projekte, die täglich oder sogar stündlich aktualisiert werden.

Wenn Sie über ein kostenpflichtiges Docker Hub-Konto verfügen, können Sie parallele Builds nutzen. Ein Konto, das für fünf parallele Builds berechtigt ist, kann Container aus bis zu fünf verschiedenen Repositorys gleichzeitig erstellen. Beachten Sie, dass für jedes einzelne Repository jeweils nur ein Container erstellt werden darf. Die Parallelität gilt eher für Repos als für Bilder in einem Repo.

Ein weiterer praktischer Mechanismus für Entwickler in Docker Hub sind Webhooks. Immer wenn ein bestimmtes Ereignis mit einem Repository stattfindet - ein Image wird neu erstellt oder ein neues Tag hinzugefügt -, kann Docker Hub eine POST-Anforderung an einen bestimmten Endpunkt senden. Sie können Webhooks verwenden, um ein Image bei jeder Neuerstellung automatisch bereitzustellen oder zu testen, oder um das Image nur dann bereitzustellen, wenn es den Test besteht.