Wie man docker pull verwendet

Wenn du mit Docker arbeitest, musst du häufig Images aus einem Registry herunterladen. Der gängigste Befehl dafür ist docker pull
. Lass uns durchgehen, wie du ihn verwendest und welche Optionen es gibt.
Zunächst ist docker pull
eigentlich eine Abkürzung für docker image pull
. Beide Befehle machen dasselbe: Sie laden Images aus einer Registry herunter, meistens von Docker Hub. Docker Hub ist wie eine große Bibliothek mit vorgefertigten Images, die du als Ausgangspunkt für deine eigenen Container nutzen kannst.
So wird der Befehl verwendet:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
Das bedeutet:
NAME
ist der Name des Images, das du herunterladen möchtest. Wenn du zum Beispiel die neueste Version des Debian-Images haben willst, verwendest dudebian
.TAG
ist optional. Wenn du keinen Tag angibst, verwendet Docker standardmäßiglatest
. Daher istdocker pull debian
das Gleiche wiedocker pull debian:latest
.DIGEST
ist eine weitere optionale Möglichkeit, das Image zu spezifizieren. Dazu gleich mehr.
Hier ein Beispiel zum Herunterladen des neuesten Debian-Images:
docker pull debian
Wenn du diesen Befehl ausführst, lädt Docker das debian:latest
Image herunter. Wenn du die Ausgabe genau anschaust, siehst du etwas wie:
e756f3fdd6a3: Pull complete
Digest: sha256:123456789abcdef
Status: Downloaded newer image for debian:latest
Die lange Zeichenfolge e756f3fdd6a3
ist die ID eines Layers im Image. Docker-Images bestehen aus Layern, und jedes Layer hat eine eindeutige ID. In diesem Fall hat das debian:latest
Image nur ein Layer.
Angenommen, du möchtest eine andere Version von Debian herunterladen, wie debian:bookworm
. Wenn du bereits debian:latest
heruntergeladen hast und es das gleiche Layer wie debian:bookworm
verwendet, muss Docker die Layer nicht erneut herunterladen. Es wird nur die Metadaten für debian:bookworm
ziehen:
docker pull debian:bookworm
Du kannst mit dem Befehl docker images
überprüfen, welche Images du lokal hast:
docker images
Dies zeigt dir eine Liste aller Images auf deinem System, einschließlich ihrer Tags und IDs.
Nun zu einigen Optionen, die du mit docker pull
verwenden kannst:
-a
oder--all-tags
: Diese Option weist Docker an, alle getaggten Versionen eines Images aus einem Repository herunterzuladen. Wenn du beispielsweise alle Versionen des Ubuntu-Images herunterladen möchtest, verwendest du:docker pull -a ubuntu
Nach Abschluss des Pull-Vorgangs kannst du mitdocker images
alle Ubuntu-Images sehen, die du jetzt lokal hast.--disable-content-trust
: Standardmäßig überprüft Docker die Integrität der heruntergeladenen Images. Wenn du diese Überprüfung überspringen möchtest, kannst du diese Option verwenden. Sie ist standardmäßig auftrue
gesetzt, du musst sie also nur verwenden, wenn du sie ausschalten möchtest.--platform
: Wenn du eine Registry verwendest, die mehrere Plattformen unterstützt, kannst du angeben, für welche Plattform du ein Image herunterladen möchtest. Das ist nützlich, wenn du mit verschiedenen Architekturen arbeitest.-q
oder--quiet
: Diese Option macht den Pull-Befehl weniger gesprächig. Sie unterdrückt die ausführliche Ausgabe, sodass du nur die wichtigsten Informationen siehst.
Wenn du hinter einem Proxy-Server arbeitest, musst du möglicherweise die Proxy-Einstellungen von Docker konfigurieren, bevor du Images herunterladen kannst. Du kannst dies durch Bearbeiten der Docker-Daemon-Konfiguration tun.
Standardmäßig lädt Docker drei Layer eines Images gleichzeitig herunter. Bei einer langsamen Verbindung solltest du diese Zahl möglicherweise verringern, um Timeout-Probleme zu vermeiden. Du kannst dies mit der Option --max-concurrent-downloads
tun, wenn du den Docker-Daemon startest.
Manchmal möchtest du ein Image vielleicht anhand seines Digests statt seines Tags herunterladen. Ein Digest ist eine eindeutige Kennung für eine bestimmte Version eines Images. Wenn du ein Image anhand seines Digests herunterlädst, erhältst du garantiert jedes Mal genau dieselbe Version. Das ist nützlich, wenn du deine Anwendung an eine bestimmte Version eines Images "pinnen" möchtest.
Um ein Image anhand seines Digests herunterzuladen, musst du zunächst den Digest kennen. Du kannst ihn herausfinden, indem du das Image zuerst mit einem Tag herunterlädst. Zum Beispiel:
docker pull ubuntu:24.04
Die Ausgabe enthält den Digest:
Digest: sha256:abcdef123456789
Jetzt kannst du das Image anhand seines Digests herunterladen:
docker pull ubuntu@sha256:abcdef123456789
Du kannst einen Digest auch in einem Dockerfile verwenden:
FROM ubuntu@sha256:abcdef123456789
Bedenke aber, dass du bei Verwendung eines Digests keine automatischen Updates für das Image erhältst. Wenn du auf eine neue Version aktualisieren möchtest, musst du den Digest ändern.
Standardmäßig lädt docker pull
Images von Docker Hub herunter. Du kannst aber auch von anderen Registries laden. Dazu musst du nur den Registry-Pfad im Pull-Befehl angeben. Wenn du beispielsweise eine lokale Registry auf myregistry.local:5000
hast, kannst du so von ihr herunterladen:
docker pull myregistry.local:5000/testing/test-image
Wenn du dich bei der Registry authentifizieren musst, kannst du zuerst den Befehl docker login
verwenden.
Wenn du einen Pull-Vorgang abbrechen musst, kannst du einfach CTRL-c
im Terminal drücken, in dem der Pull läuft. Docker beendet den Pull und räumt alle teilweise heruntergeladenen Daten auf.
Das sind die Grundlagen zur Verwendung von docker pull
! Es ist ein einfacher, aber mächtiger Befehl, mit dem du problemlos Images aus Registries herunterladen und mit dem Aufbau deiner Docker-basierten Anwendungen beginnen kannst.