Loading...

Wie man docker pull verwendet

Jonas Scholz - Co-Founder von sliplane.ioJonas Scholz
5 min

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 du debian.
  • TAG ist optional. Wenn du keinen Tag angibst, verwendet Docker standardmäßig latest. Daher ist docker pull debian das Gleiche wie docker 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 mit docker 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 auf true 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.

Willkommen in der Container-Cloud

Sliplane macht es einfach, Container in der Cloud zu deployen und bei Bedarf zu skalieren. Probier es jetzt aus!