Definition
Ein Docker-Image ist eine schreibgeschützte Vorlage mit Anweisungen zur Erstellung eines Containers. Es bündelt eine Anwendung und deren vorkonfigurierte Umgebung. In diesem Artikel erfahren Sie die Grundlagen zum Verständnis und zur Erstellung von Docker-Images – inklusive Schritt-für-Schritt-Anleitung und Best Practices für effiziente und sichere Container-Builds.
Überblick über Docker Hub
Docker Hub ist die offizielle Container-Registry von Docker und wird weltweit intensiv genutzt – mit Milliarden von Image-Downloads pro Monat aus öffentlichen und privaten Repositories.
Docker ist allgegenwärtig – doch gerade deshalb ist das Ökosystem nicht immer leicht zu durchschauen. Was genau ist eine Container-Registry? Welche Vorteile bietet Docker Hub konkret? In diesem Überblick beantworten wir diese Fragen – und zeigen Ihnen Schritt für Schritt, wie Sie Docker Hub als zentrale Registry nutzen können.
Was ist eine Docker Registry?
Eine Docker Registry ist ein Dienst, der Docker Images hostet und verteilt. In der Regel besteht eine Registry aus mehreren Repositories, die jeweils Images zu einem bestimmten Projekt enthalten. Innerhalb eines Repositories werden Tags verwendet, um verschiedene Image-Versionen zu unterscheiden – z. B. ubuntu/httpd:version2.4, ubuntu/httpd:version2.5, ubuntu/httpd:version2.6, wobei „version2.x“ jeweils ein Tag ist.
Nutzer können Images, die sie benötigen, herunterladen (pull) oder eigene Images zur Speicherung in die Registry hochladen (push). Durch die zentrale Bereitstellung von Images ermöglichen Registries ein besseres Versionsmanagement und vereinfachen die Verwaltung und Verteilung von Container-Images. Viele Registry-Dienste bieten darüber hinaus Funktionen zur Automatisierung von Build- und Deployment-Prozessen sowie zur Stärkung der Sicherheit.
Docker Registries können sowohl in der Cloud als auch lokal gehostet werden. Neben Docker Hub zählen zu den bekanntesten Registries:
- Quay
- Google Container Registry
- Amazon Elastic Container Registry (ECR)
- JFrog Artifactory und JFrog Container Registry
Es ist auch möglich, eine eigene Docker Registry mit dem offiziellen Registry Image aufzusetzen – dennoch empfiehlt es sich meist, zunächst professionelle Alternativen zu evaluieren.
Was sind die wichtigsten Merkmale von Docker Hub?
Docker Hub ist Dockers offizielle, cloudbasierte Registry für Docker Images.
Da Docker Hub die offizielle Registry von Docker ist, wird sie beim Installieren von Docker als Standard-Registry verwendet. Sie hostet über 100.000 Images, darunter offizielle Images für MongoDB, nginx, Apache, Ubuntu und MySQL, die jeweils über eine Milliarde Mal heruntergeladen wurden.
Neben den öffentlichen Repositories, aus denen jeder Images herunterladen kann, bietet Docker Hub auch private Repositories, in denen Einzelpersonen oder Teams Images hosten können, auf die nur sie Zugriff haben. Docker Hub bietet außerdem Funktionen wie Integrationen mit GitHub und Bitbucket, die dabei helfen, Entwicklungsprozesse zu automatisieren, sowie Unterstützung für Webhooks, die als Trigger für alles Mögliche dienen können – von automatisierten Tests bis hin zu Benachrichtigungen.
Warum sollten Sie Docker Hub verwenden?
Bei all den verfügbaren Docker-Registry-Optionen stellt sich die Frage: Warum sollte man ausgerechnet Docker Hub nutzen? Hier sind einige der wichtigsten Vorteile gegenüber anderen Anbietern:
- Eine umfangreiche Bibliothek vertrauenswürdiger Images – Docker Certified Images, Verified Publisher Images (zertifiziert durch Docker und verifiziert vom Herausgeber) sowie die von Docker veröffentlichten offiziellen Images bieten eine zusätzliche Sicherheitsebene für Nutzer. Viele dieser häufig verwendeten Images wurden millionen- oder sogar milliardenfach heruntergeladen, sodass Sie bei Docker Hub auf eine verlässliche Basis setzen können. Das ist nicht nur für Anwender von Vorteil – auch Publisher profitieren, denn das Hosten eines Images auf Docker Hub sorgt für mehr Sichtbarkeit des eigenen Projekts.
- Ein kostenloses Angebot – Derzeit bietet der kostenlose Plan von Docker unbegrenzte öffentliche Repositories und 1 privates Repository mit bis zu 3 Mitwirkenden. Das eignet sich gut für grundlegende Tests und um sich mit der Plattform vertraut zu machen. Allerdings machen kürzliche Änderungen der Nutzungsbedingungen das kostenlose Modell für ernsthafte Entwicklungsprojekte weniger geeignet.
- Integrierte Sicherheitsfunktionen – Alle Konten profitieren von lokalen Schwachstellenscans für Images. Team-Konten erhalten zusätzlich Zugriff auf Audit-Logs und die Möglichkeit zur Einrichtung von Multi-Faktor-Authentifizierung (MFA), um Repositories noch besser zu schützen.
- Integrationen und Funktionen für CI/CD – Docker Hub unterstützt Integrationen mit GitHub und Bitbucket, automatisierte Tests, Build-Trigger und Webhooks – ideal, um Entwicklungspipelines zu automatisieren und Continuous Integration / Continuous Delivery zu ermöglichen.
Das heißt aber nicht, dass Docker Hub für jeden Anwendungsfall die ideale Lösung ist. Wenn Sie Ihre Images beispielsweise lokal speichern müssen – etwa zur Reduzierung der Latenz oder zur Einhaltung branchenspezifischer Vorschriften –, ist eine cloudbasierte Lösung wie Docker Hub möglicherweise nicht geeignet. Sollten Sie sich dennoch für Docker Hub entscheiden, kann es sinnvoll sein, Images lokal zu cachen, um Latenzzeiten und Bandbreitennutzung zu verringern. Unabhängig von den Anforderungen Ihrer Umgebung sorgen bewährte Best Practices dafür, dass Sie das Optimum aus Ihrer Docker-Hub-Nutzung herausholen.
Best Practices für die Nutzung von Docker Hub
Docker Hub macht es einfach, Container-Images zu teilen und zu konsumieren – doch ohne klare Standards können leicht Ineffizienzen oder sogar Sicherheitsrisiken entstehen. Mit einigen bewährten Best Practices stellen Sie sicher, dass Ihre Images sicher, konsistent und effizient bleiben.
Sicherheitsaspekte
Sicherheit beginnt bei der Herkunft der Images. Verwenden Sie bevorzugt offizielle Images und Verified Publisher Images, da diese zusätzlichen Qualitäts- und Sicherheitsprüfungen unterzogen werden. Das Abrufen aus nicht verifizierten Quellen mag zunächst effizient erscheinen, birgt aber erhebliche Risiken für Ihre Entwicklungsumgebung.
Ein weiteres häufiges Risiko ist die Verwendung des floating latest-Tags, der möglicherweise nicht der Version entspricht, die Sie erwarten. Stattdessen sollten konkrete Versionen oder unveränderliche Digests verwendet werden – so stellen Sie sicher, dass das Image, das Sie in Produktion bringen, genau dem entspricht, das zuvor getestet wurde. Weitere Hinweise finden Sie in Aqua Securitys Leitfaden für den verantwortungsvollen Umgang mit Docker Hub, der signierte Images, MFA für Accounts und regelmäßiges Schwachstellen-Scanning empfiehlt.
Private Repositories sollten zudem mit Multi-Faktor-Authentifizierung und rollenbasierten Zugriffsrechten gesichert werden. Für Unternehmen bieten Lösungen wie JFrog Container Registry zusätzliche Sicherheitsfunktionen wie Governance, Auditing und automatisiertes Scanning.
Versionierung und Tagging
Eine klare Versionierungsstrategie ist essenziell für Reproduzierbarkeit. Vermeiden Sie den floating latest-Tag und setzen Sie stattdessen auf einheitliche, nachvollziehbare Tags. Teams nutzen oft semantische Versionierung (v1.2.0) für schrittweise Änderungen oder umgebungsspezifische Tags wie staging und prod, um Builds bestimmten Deployments zuzuordnen.
Ziel ist Konsistenz: Wenn Entwickler und CI/CD-Pipelines einheitliche Regeln für Tags befolgen, lässt sich leichter nachvollziehen, welche Version in Produktion läuft – oder bei Bedarf ein funktionierender Build zurückrollen. Die Dokumentation von Docker Hub erklärt die Funktionsweise von Repositories und Tags im Detail und dient als Grundlage für die eigene Strategie.
Überwachung und Optimierung der Image-Größe
Die Größe von Images wirkt sich direkt auf Performance und Sicherheit aus: Kleinere Images werden schneller heruntergeladen, verbrauchen weniger Bandbreite und haben eine kleinere Angriffsfläche. Verwenden Sie deshalb möglichst minimale Base Images und fügen Sie nur unbedingt erforderliche Komponenten hinzu.
Ein weiterer wichtiger Schritt ist die Pflege einer .dockerignore-Datei, um Logs, Testdaten oder andere unnötige Dateien vom Build-Kontext auszuschließen. Regelmäßiges Auditing der Images hilft dabei, veraltete Bibliotheken und ungenutzte Pakete zu entfernen – und so versteckte Aufblähung zu vermeiden. Docker bietet hierzu praxisnahe Anleitungen, etwa im Workshop zu Best Practices für Image Builds, inklusive Tipps zu Layering und Build-Kontexten.
Indem Sie Sicherheit in Ihre Workflows integrieren, eine konsistente Tagging-Strategie etablieren und unnötigen Ballast aus Ihren Images entfernen, machen Sie Docker Hub zu einer verlässlichen Grundlage für Ihre containerisierten Anwendungen. Das Ergebnis sind nicht nur schlankere Builds, sondern auch ein höheres Maß an Vertrauen in die Reproduzierbarkeit, Zuverlässigkeit und Sicherheit jedes Deployments.
Docker Hub verwenden: Ein Crashkurs
Nachdem Sie nun wissen, was Docker Hub ist, zeigen wir Ihnen die grundlegende Nutzung. In diesem Schnellstart führen wir Sie durch das Herunterladen (Pull) eines Images von Docker Hub auf Ihre lokale Maschine und das Hochladen (Push) einer neuen Version mit Tag in Ihr eigenes Repository.
Wenn Sie die Schritte selbst ausführen möchten, benötigen Sie ein Docker-Hub-Konto. Falls Sie noch keines haben, können Sie sich hier registrieren. Anschließend müssen Sie Docker lokal installieren.
Schritt 1: Repository erstellen
Sobald Sie ein Docker-Hub-Konto haben, können Sie unter https://hub.docker.com/repositories mit wenigen Klicks ein neues Repository erstellen.
- Klicken Sie auf
„Create Repository“. - Geben Sie einen Namen und eine Beschreibung für Ihr Repository an.
- Wählen Sie, ob es öffentlich oder privat sein soll.
- Klicken Sie dann auf
„Create“.
Schritt 2: Ein Docker-Image von Docker Hub ziehen
Sie können auch Ihr eigenes Image erstellen, wenn Sie möchten, aber für dieses Tutorial verwenden wir das Image „Hello World“.
Zunächst melden wir uns über unser Terminal mit dem Befehl pseudo docker login -u <Benutzername> bei unserem Docker-Konto an.
Als Nächstes laden wir das Docker-Image „Hello World“ mit dem Befehl docker pull hello-world herunter.
Schritt 3: Image in Ihr privates Repository pushen
Nachdem wir nun das „Hello World“-Image haben, kopieren wir es unter einem neuen Namen, bevor wir es an unser privates Repository senden. Dazu verwenden wir den Befehl docker tag <aktueller Image-Name> <unser Benutzername>/<neuer Image-Name>[:tag]. Mit dem Befehl docker images listen wir unsere Images vor und nach der Änderung auf, damit wir die Änderung sehen können.
Jetzt können wir das Image mit dem Befehl docker push <unser Benutzername>/<neuer Image-Name>[:tag] in unser privates Repository übertragen.
Der Push bezieht sich auf das Repository [docker.io/unserBenutzername/johnnyodemo].
Wenn wir zu unserem Docker Hub-Konto zurückkehren, sehen wir, dass das neue Tag in unserem privaten Repository gespeichert ist.
So richten Sie einen Proxy für Docker Hub mit der JFrog Container Registry ein
Wie bereits erwähnt, kann das kostenlose Kontingent von Docker Hub die Entwicklungsarbeit einschränken – insbesondere durch Rate-Limiting beim Hochladen und Abrufen von Images. Durch das Zwischenspeichern (Caching) häufig genutzter Images außerhalb von Docker Hub lassen sich diese Begrenzungen umgehen. Eine geeignete Proxy- und Caching-Lösung ist daher entscheidend. Mit dieser Technik profitieren Sie weiterhin von den Vorteilen von Docker Hub – wie der Vielzahl vertrauenswürdiger Images – und vermeiden gleichzeitig Engpässe in Ihren CI/CD-Workflows.
Im Folgenden zeigen wir Ihnen, wie Sie die JFrog Container Registry als Proxy für Docker Hub einrichten und damit häufig verwendete Images lokal cachen können. In diesem Beispiel verwenden wir die JFrog Cloud Platform, aber auch die kostenlose lokale Version lässt sich dafür einsetzen.
Pro-Tipp: Für weiterführende Informationen zur Konfiguration der JFrog Container Registry oder anderen JFrog-Themen empfehlen wir die offizielle JFrog-Dokumentation.
Schritt 1: Kostenloses Testkonto erstellen
- Gehen Sie zur Anmeldeseite, um ein kostenloses Testkonto zu erstellen – ganz ohne Kreditkarte.
- Geben Sie Ihre Daten ein und bestätigen Sie Ihre E-Mail-Adresse über den zugesandten Link.
- Nach erfolgreicher Aktivierung können Sie sich einloggen.
Hinweis: Wählen Sie beim Setup eine Server-Region, die geografisch nahe an Ihrem Standort liegt – das reduziert Latenzen.
Schritt 2: Zum Bereich „Remote Repositories“ navigieren
Nach dem Login klicken Sie auf:
Administration → Repositories → Repositories
Schritt 3: Neues Remote-Repository erstellen
- Klicken Sie auf
Remote → + New Remote Repository - Im Fenster
SELECT PACKAGE TYPEwählen Sie das Docker-Symbol - Im Tab „Basic“ vergeben Sie einen Repository Key (z. B. docker-hub-proxy) und tragen Sie unter URL folgende Adresse für Docker Hub ein:
https://registry-1.docker.io/
- Die übrigen Einstellungen können in diesem Beispiel auf den Standardwerten bleiben.
Optional: Wenn Sie Ihre Docker-Hub-Zugangsdaten einbinden möchten, um authentifizierte Push/Pull-Requests zu senden, können Sie dies im Tab „Advanced“ konfigurieren.
- Abschließend klicken Sie auf
Save & Finish
Schritt 4: Melden Sie sich bei Ihrem neu erstellten Konto an und laden Sie ein Image herunter.
Führen Sie in Ihrer Docker-CLI den Befehl docker login aus.
Laden Sie anschließend ein Image wie bei Docker Hub herunter, aber fügen Sie davor eine URL im Format <Ihr_Server>.jfrog.io/Ihr_Repository/ ein. Wir laden hier das aktuelle Ubuntu-Image herunter, daher verwenden wir: <Ihr_Server>.jfrog.io/Ihr_Repository/ubuntu.
Noch wichtiger ist, dass wir auch in unserem JFrog-Konto nachsehen können und sehen, dass das Image dort ebenfalls zwischengespeichert ist! Wir haben das Image erfolgreich für die zukünftige Verwendung zwischengespeichert.
Über das Proxying von Docker Hub hinaus richten einige Teams auch ihre eigene lokale Registry ein, um noch mehr Kontrolle zu haben.
Obwohl Docker Hub für die meisten Entwickler die Standard-Registry ist, gibt es viele Szenarien, in denen eine eigene lokale Registry sinnvoller ist. Eine selbstgehostete Registry bietet Teams mehr Kontrolle über Sicherheit, Compliance und Performance – besonders in Unternehmens- oder regulierten Umgebungen.
Schritte zur Installation und Konfiguration einer lokalen Registry
Docker bietet ein Open Source Registry Image, das Sie schnell bereitstellen können. Durch Ausführen dieses Images erstellen Sie einen privaten Dienst, in dem Sie Images genau wie bei Docker Hub pushen und pullen können. Beispiel:
docker run -d -p 5000:5000 --name registry registry:2
Dieser Befehl startet eine Registry auf Port 5000. Um es zu verwenden, versehen Sie ein Image mit der lokalen Adresse und übertragen Sie es in die Registry:
docker tag ubuntu:22.04 localhost:5000/ubuntu:22.04
docker push localhost:5000/ubuntu:22.04
Anschließend können Sie dasselbe Image aus Ihrer lokalen Registry abrufen:
docker pull localhost:5000/ubuntu:22.04
Sichern und Verwalten des Zugriffs
Da Container-Images sensible Codes oder Abhängigkeiten enthalten können, ist die Sicherung Ihrer lokalen Registrierung von entscheidender Bedeutung. Zu den bewährten Verfahren gehören die Aktivierung von HTTPS mit einem vertrauenswürdigen TLS-Zertifikat, die Anforderung einer Authentifizierung für Push- und Pull-Vorgänge sowie die Beschränkung des Zugriffs auf vertrauenswürdige Benutzer oder interne Netzwerke. Größere Unternehmen erweitern diese Kontrollen häufig um Unternehmenslösungen wie JFrog Container Registry, die rollenbasierten Zugriff, Audits und Replikation hinzufügen.
Anwendungsfälle und Vorteile
Eine lokale Docker-Registry ist in verschiedenen Szenarien von Vorteil, darunter:
- Geringere Latenz – Images können über interne Netzwerke schneller abgerufen werden als über einen Cloud-Dienst.
- Compliance und Datensicherheit – In regulierten Branchen müssen Artefakte möglicherweise vor Ort verbleiben.
- Air-Gapped-Umgebungen – Server ohne Internetzugang benötigen dennoch Zugriff auf einen vertrauenswürdigen Katalog von Images.
- Zwischenspeicherung häufig verwendeter Images – Teams können die Pull-Limits von Docker Hub umgehen und die Bandbreitennutzung reduzieren.
Durch die Einrichtung einer lokalen Registry erhalten Unternehmen mehr Kontrolle über ihre Container-Lieferkette und können gleichzeitig die vertrauten Workflows beibehalten, die Entwickler bereits mit Docker Hub verwenden.
Nächste Schritte mit Docker Hub
Zusammenfassend lässt sich sagen:
- Docker-Registries werden verwendet, um Docker-Images zu hosten und zu verteilen
- Docker Hub ist Dockers offizielle, cloudbasierte Registry
- Um mit Docker Hub loszulegen, können Sie ein Image herunterladen oder eines Ihrer lokalen Images hochladen
- Die Wahl der richtigen lokalen oder cloudbasierten Docker-Registry – wie etwa der JFrog Container Registry – kann dabei helfen, Docker Hub optimal in Ihre Entwicklungspipeline zu integrieren
Natürlich sind das nur die Grundlagen. Spannend wird die Containerisierung bei den Projekten, die Sie entwickeln, und den Entwicklungs-Pipelines, die Sie zur Unterstützung aufbauen. Mit Docker Hub steht Ihnen eine hervorragende Ressource zur Verfügung, um nützliche Base Images zu beziehen – sowie eine Vielzahl von Tools, die Zusammenarbeit, Tests und CI/CD-Prozesse effizienter gestalten.
Enterprise-Registries mit JFrog
Docker Hub bietet einen großartigen Einstieg, um zu lernen, wie man Container Images speichert und teilt. Doch sobald Ihre Entwicklungspipeline skaliert, benötigen Sie schnell mehr Kontrolle, Sicherheit und Zuverlässigkeit, als eine öffentliche Cloud Registry bieten kann.
JFrog Artifactory und die JFrog Container Registry erweitern die vertraute Docker-Hub-Erfahrung um Enterprise-Funktionen wie granulare Zugriffskontrollen, Replikation über mehrere Standorte, Schwachstellen-Scanning und die Integration in CI/CD-Workflows. Durch das Caching von Docker Hub Images und die gleichzeitige Absicherung und Verwaltung Ihrer eigenen Komponenten hilft JFrog Teams dabei, Rate-Limits zu vermeiden, Compliance zu verbessern und die Auslieferung zu beschleunigen. Mit JFrog können Sie den Komfort von Docker Hub in eine vertrauenswürdige, produktionsreife Container-Lieferkette überführen.
Weitere Informationen finden Sie auf unserer Website. Machen Sie eine virtuelle Tour oder vereinbaren Sie eine persönliche Demo – ganz nach Ihrem Bedarf.