Wie man docker push verwendet

Wenn du ein Docker-Image erstellt hast und es mit anderen teilen oder in verschiedenen Umgebungen nutzen möchtest, musst du es in eine Docker-Registry hochladen. Lass uns durchgehen, wie das mit dem docker push
-Befehl funktioniert.
Zunächst einmal ist der docker push
-Befehl im Grunde eine Kurzform für docker image push
. Er wird verwendet, um dein Docker-Image in eine Registry hochzuladen, sei es Docker Hub oder eine selbst gehostete Registry. So funktioniert's:
Grundlegende Verwendung
Um ein Image hochzuladen, verwendest du einen Befehl, der so aussieht:
docker push NAME[:TAG]
Wenn du zum Beispiel ein Image namens myimage
mit dem Tag latest
hast, würdest du es so hochladen:
docker push myimage:latest
Wenn du keinen Tag angibst, versucht Docker standardmäßig, das Image mit dem Tag latest
zu pushen.
Tagging vor dem Pushen
Bevor du ein Image pushen kannst, musst du es mit der Adresse der Registry taggen. Angenommen, du möchtest ein Image zu Docker Hub pushen und dein Benutzername dort ist myusername
. Du würdest dein Image so taggen:
docker tag myimage:latest myusername/myimage:latest
Dann kannst du es hochladen:
docker push myusername/myimage:latest
Wenn du zu einer privaten Registry pushen möchtest, beispielsweise auf einem Server namens registry-host
auf Port 5000
, würdest du es so taggen und pushen:
docker tag myimage:latest registry-host:5000/myimage:latest
docker push registry-host:5000/myimage:latest
Anmeldedaten verwalten
Um zu einer Registry zu pushen, die eine Authentifizierung erfordert, wie Docker Hub, musst du dich zuerst anmelden:
docker login
Dieser Befehl fordert dich zur Eingabe deines Benutzernamens und Passworts auf. Nach der Anmeldung verwendet Docker diese Anmeldedaten für deine Push-Operationen.
Alle Tags pushen
Wenn du alle Tags eines Images auf einmal pushen möchtest, kannst du die Option --all-tags
oder -a
verwenden. Angenommen, du hast ein Image myimage
mit mehreren Tags (v1
, v2
, latest
). Du kannst all diese Tags so pushen:
docker push --all-tags myusername/myimage
Content Trust deaktivieren
Standardmäßig verwendet Docker Content Trust, um Images zu signieren. Wenn du dies überspringen und unsignierte Images pushen möchtest, kannst du Folgendes verwenden:
docker push --disable-content-trust myusername/myimage:latest
Plattformspezifische Images pushen
Wenn du mit Images arbeitest, die für bestimmte Plattformen spezifisch sind, kannst du dies beim Pushen angeben. Um beispielsweise ein Image für Linux auf AMD64-Architektur zu pushen:
docker push --platform linux/amd64 myusername/myimage:latest
Quiet-Modus
Wenn du während des Pushens keine Fortschrittsbalken und andere ausführliche Ausgaben sehen möchtest, kannst du den Quiet-Modus verwenden:
docker push -q myusername/myimage:latest
Was zu erwarten ist
Wenn du einen Push startest, zeigt Docker dir Fortschrittsbalken an, die die Größe der hochgeladenen Daten angeben. Denk daran, dass diese Balken die unkomprimierte Größe anzeigen und die tatsächlich gesendeten Daten kleiner sein werden, da sie komprimiert sind.
Wenn du den Push stoppen musst, kannst du CTRL-c
drücken. Dadurch wird der Prozess beendet, aber du musst den Push von vorne beginnen, wenn du ihn abschließen möchtest.
Gleichzeitige Uploads
Docker pusht Images in Schichten und versucht standardmäßig, fünf Schichten gleichzeitig hochzuladen. Bei einer langsamen Verbindung kann das Probleme verursachen. Du kannst diese Einstellung in der Docker-Daemon-Konfiguration mit der Option --max-concurrent-uploads
anpassen.
Den Push überprüfen
Nachdem du ein Image gepusht hast, kannst du überprüfen, ob es in der Registry verfügbar ist. Für Docker Hub kannst du die Website besuchen. Bei einer privaten Registry musst du möglicherweise einen Befehl wie docker images
verwenden, um zu sehen, ob das Image mit der Adresse der Registry aufgelistet ist.
Das war's! Wenn du diese Schritte befolgst, solltest du in der Lage sein, deine Docker-Images in jede gewünschte Registry zu pushen.