Eigenes Image veröffentlichen
Nun haben wir das Image erstellt. Aktuell befindet sich dieses aber nur auf unserem eigenen Rechner. D.h. keiner, außer uns, kann dieses Image nutzen. Damit auch andere unser Image nutzen können, müssen wir dieses veröffentlichen. Dazu benötigen wir als erstes eine Container-Registry.
Container Registry
Container Registry ist ein zentraler Speicherort für die fertig gebauten Images. Es gibt einige Anbieter dafür, sowohl öffentlich zugängliche als auch solche, die private Images verwalten.
Die bekannteste Registry ist von der Firma Docker selbst und heißt Docker Hub. Diese erlaubt ein kostenloses privates Repository und unbegrenzt für Open Source Projekte.
Daneben bietet fast jeder größerer Cloud-Anbieter eine Container-Registry in deren Cloud-Umgebung:
- Amazon (Amazon Elastic Container Registry - ECR)
- Azure (Azure Container Registry - ACR)
- Google (Google Artifact Registry
- GitHub (GitHub Package Registry)
- GitLab (GitLab Container Registry)
und viele weitere.
Docker Hub
Hier werden wir Docker Hub als Beispiel nutzen. Das Vorgehen mit anderen Anbietern ist oft ähnlich. Für alle können dieselben Docker-Befehle genutzt werden.
- Legen Sie als erstes ein Konto bei Docker Hub an, falls Sie noch keinen haben.
- Erstellen Sie ein neues Repository (Speicherort für Images einer Anwendung) an, z.B.
blazor-movies - Erstellen Sie ein “Personal Access Token”, um auf den Docker Hub einfacher zugreifen zu können (und sicherer - insbesondere in CI/CD Umgebungen).
Personal Access Token Erstellen
- Klicken Sie auf Ihren Avatar oben rechts, um zu den “Account Settings” zu gelangen.

- Öffnen Sie nun im Bereich “Settings” die Einstellungen für “Personal access tokens”

- Klicken Sie auf “Generate new token”, um einen neuen Token zu erstellen. Wählen Sie hier einen sprechenden Namen, die max. Gültigkeit des Tokens und dessen Berechtigung. Zum Veröffentlichen benötigen Sie min. Schreibrechte. Bei anderen Anbietern kann die Granularität der Berechtigungen deutlich granulärer sein.

Vorbereiten des Images
Bevor das Image hochgeladen werden kann, muss dieser zuerst angepasst werden. Der Name kann nicht mehr so einfach sein, wie in unserem Fall vorher (balazor-moview). Wie wir bereits gelernt haben, sind die “einfachen” Image-Namen für offizielle Images reserviert.
Unsere Images müssen im Namen folgende Bestandteile enthalten <registry>/<vendor>/<repository>:<tag>. Hier am Beispiel unseres Basis-Images mcr.microsoft.com/dotnet/aspnet:10.0-alpine:
- Registry: Bei Docker-Hub fällt dieser Teil weg. Bei anderen Registrys muss der Name der Registry angegeben werden (z.B. bei unserem Basis-Image ist es
mcr.microsoft.com). - Vendor: Normalerweise Hersteller der Software oder Benutzer, der die Repositories pflegt (z.B. bei unserem Basis-Image ist es
dotnet). Bei offiziellen Images auf Docker Hub entfällt auch dieser Teil. - Repository: Speichername für die Images einer Anwendung (z.B. bei unserem Basis-Image ist es
aspnet). Dieser Teil ist immer notwendig - Tag: Version der Anwendung (z.B. bei unserem Basis-Image ist es
10.0-alpine). Dieser Teil ist wieder optional. Wird Tag nicht angegeben, vergibt Docker automatisch den Taglatest.
Wir müssen unser Image, das wir veröffentlichen wollen, zuerst nach der obigen Konvention umbenennen. Aus dem aktuellen Namen blazor-movies:from-alpine muss webducer/blazor-moviews:alpine werden (ersetzen Sie Benutzer- und Repository-Namen mit Ihren Werten).
Auf Docker Hub erhalten Sie einen Hinweis, wie das Image heißen soll in Form des “push” Befehls auf der Repository Startseite.

Push command Hilfestellung auf der Repository Seite
Die Umbenennung des Images erfolgt durch das erneute Taggen des vorhandenen Images mit dem docker image tag Befehl.
docker image tag blazor-movies:from-alpine webducer/blazor-movies:alpine
Veröffentlichen
Vor der Veröffentlichung müssen wir uns zuerst bei der Registry einloggen. Bei Docker Hub entfällt die Angabe der Registry. Bei allen anderen muss diese immer explizit mit angegeben werden. Das Anmelden erfolgt über den docker login Befehl (docker login <server-name> bei nicht Docker Hub Registrys). Folgen Sie dabei den Anweisungen.
docker login
Nun können wie unser Image veröffentlichen. Das erfolgt durch den docker push Befehl und der Eingabe des Image-Namens.
docker push webducer/blazor-movies:alpine
Das Veröffentlichen kann einige Zeit dauern, abhängig von der Größe des Images und Ihrer Internetverbindung. Beim push wird normalerweise nicht das ganze Image übertragen, sondern nur die “unbekannten” Schichten. Da meistens das Basis-Image bereits in Registry bekannt ist, müssen nur die Schichten oberhalb von diesen Basis-Image übertragen werden.

Repository nach Veröffentlichung
