Wie man den Docker-Image-Pull-Befehl verwendet, um Images herunterzuladen

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie den Befehl docker pull verwenden, um Docker-Images aus Registries herunterzuladen. Sie werden verschiedene Methoden zum Herunterladen von Images erkunden, darunter das Herunterladen eines bestimmten Images anhand seines Tags von Docker Hub, das Herunterladen eines Images anhand seines unveränderlichen Digests für eine zuverlässige Versionskontrolle, das Herunterladen aller getaggten Images aus einem Repository und das Herunterladen von Images aus anderen Registries als Docker Hub.

Durch die Durchführung dieser Schritte gewinnen Sie praktische Erfahrung beim Erwerb von Docker-Images, was eine grundlegende Fähigkeit für das Erstellen und Ausführen von containerisierten Anwendungen ist. Sie lernen, wie Sie Image-Versionen und -Quellen angeben, um sicherzustellen, dass Sie die für Ihre Projekte benötigten Images zuverlässig erhalten können.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/images("List Images") subgraph Lab Skills docker/pull -.-> lab-555159{{"Wie man den Docker-Image-Pull-Befehl verwendet, um Images herunterzuladen"}} docker/images -.-> lab-555159{{"Wie man den Docker-Image-Pull-Befehl verwendet, um Images herunterzuladen"}} end

Herunterladen eines bestimmten Images anhand des Tags von Docker Hub

In diesem Schritt lernen Sie, wie Sie ein bestimmtes Docker-Image anhand seines Tags von Docker Hub herunterladen. Docker Hub ist eine öffentliche Registry, die viele offizielle und von der Community beigesteuerte Docker-Images hostet. Das Herunterladen eines Images bedeutet, es von einer Registry auf Ihren lokalen Rechner zu laden.

Der grundlegende Befehl zum Herunterladen eines Images lautet docker pull <image_name>:<tag>. Wenn Sie kein Tag angeben, lädt Docker standardmäßig das latest-Tag herunter. Es ist jedoch eine gute Praxis, ein Tag anzugeben, um sicherzustellen, dass Sie eine bestimmte Version des Images erhalten.

Lassen Sie uns das hello-world-Image mit dem latest-Tag herunterladen. Dies ist ein sehr kleines Image, das verwendet wird, um zu testen, ob Ihre Docker-Installation korrekt funktioniert.

docker pull hello-world:latest

Sie sollten eine Ausgabe sehen, die anzeigt, dass Docker die Image-Layer herunterlädt.

Using default tag: latest
latest: Pulling from library/hello-world
Digest: sha256:f52335ce493f8f15cfcf46725b2909db9087b688aedabbbd2a167ae30b6da6fc
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

Jetzt lassen Sie uns das ubuntu-Image mit einem bestimmten Tag, beispielsweise 20.04, herunterladen. Dies wird das Ubuntu 20.04 LTS-Image herunterladen.

docker pull ubuntu:20.04

Sie werden eine ähnliche Ausgabe sehen, die den Downloadfortschritt anzeigt.

20.04: Pulling from library/ubuntu
... (download progress) ...
Status: Downloaded newer image for ubuntu:20.04
docker.io/library/ubuntu:20.04

Um die Images anzuzeigen, die Sie heruntergeladen haben, können Sie den Befehl docker images verwenden.

docker images

Dieser Befehl listet alle auf Ihrem lokalen Rechner gespeicherten Images auf, einschließlich ihres Repositorys, Tags, Image-IDs, Erstellungszeitpunkts und Größe.

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
ubuntu        20.04     ...            ...            ...
hello-world   latest    ...            ...            ...

Sie haben erfolgreich bestimmte Images anhand ihres Tags von Docker Hub heruntergeladen.

Herunterladen eines Images anhand seines unveränderlichen Digests

In diesem Schritt lernen Sie, wie Sie ein Docker-Image anhand seines unveränderlichen Digests herunterladen. Während Tags praktisch sind, können sie aktualisiert werden, um auf eine andere Image-Version zu verweisen. Ein Digest hingegen ist ein eindeutiger Bezeichner für eine bestimmte Image-Layer-Konfiguration und seine Historie. Es ist eine zuverlässigere Methode, um sicherzustellen, dass Sie jedes Mal genau dasselbe Image herunterladen.

Das Format zum Herunterladen eines Images anhand des Digests lautet docker pull <image_name>@<digest>.

Zunächst finden wir den Digest eines Images, das wir bereits haben. Wir können den Befehl docker images --digests verwenden, um die Digests der lokalen Images anzuzeigen.

docker images --digests

Sie sollten eine Ausgabe ähnlich der folgenden sehen, einschließlich der Spalte DIGEST:

REPOSITORY    TAG       DIGEST                                                                      IMAGE ID       CREATED        SIZE
ubuntu        20.04     sha256:...   ...            ...
hello-world   latest    sha256:f52335ce493f8f15cfcf46725b2909db9087b688aedabbbd2a167ae30b6da6fc   ...            ...            ...

Lassen Sie uns den Digest des hello-world-Images verwenden. Kopieren Sie die vollständige Digest-Zeichenfolge (beginnend mit sha256:).

Jetzt versuchen wir, das hello-world-Image erneut herunterzuladen, diesmal jedoch anhand seines Digests. Ersetzen Sie <digest> durch den tatsächlichen Digest, den Sie kopiert haben.

docker pull hello-world@sha256:f52335ce493f8f15cfcf46725b2909db9087b688aedabbbd2a167ae30b6da6fc

Da Sie diese Image-Layer wahrscheinlich bereits haben, wird Docker melden, dass das Image auf dem neuesten Stand ist.

sha256:f52335ce493f8f15cfcf46725b2909db9087b688aedabbbd2a167ae30b6da6fc: Pulling from library/hello-world
Digest: sha256:f52335ce493f8f15cfcf46725b2909db9087b688aedabbbd2a167ae30b6da6fc
Status: Downloaded newer image for hello-world@sha256:f52335ce493f8f15cfcf46725b2909db9087b688aedabbbd2a167ae30b6da6fc
docker.io/library/hello-world@sha256:f52335ce493f8f15cfcf46725b2909db9087b688aedabbbd2a167ae30b6da6fc

Das Herunterladen anhand des Digests ist besonders nützlich in Produktionsumgebungen oder automatisierten Skripten, in denen Sie sicherstellen müssen, dass Sie eine bestimmte, unveränderliche Version eines Images bereitstellen.

Sie können die Images erneut überprüfen, indem Sie docker images --digests verwenden. Sie werden das hello-world-Image aufgeführt sehen, möglicherweise sowohl mit dem Tag als auch dem Digest, wenn Sie es zuvor anhand des Tags heruntergeladen haben.

docker images --digests

Herunterladen aller getaggten Images aus einem Repository

In diesem Schritt lernen Sie, wie Sie alle getaggten Images aus einem bestimmten Repository auf Docker Hub herunterladen. Dies kann nützlich sein, wenn Sie mehrere Versionen eines Images für Tests oder andere Zwecke herunterladen möchten.

Um alle getaggten Images aus einem Repository herunterzuladen, können Sie den Befehl docker pull -a <image_name> verwenden. Die Option -a steht für "all-tags" (alle Tags).

Lassen Sie uns versuchen, alle getaggten Images für das alpine-Repository herunterzuladen. Alpine ist eine leichte Linux-Distribution, die oft in Containern verwendet wird.

docker pull -a alpine

Dieser Befehl initiiert den Download aller Images im alpine-Repository, die ein Tag haben. Sie werden eine Ausgabe sehen, die den Download verschiedener Tags wie latest, 3.14, 3.15 usw. anzeigt.

Using default tag: latest
latest: Pulling from library/alpine
... (download progress for various tags) ...
Status: Downloaded newer image for alpine:latest
Status: Downloaded newer image for alpine:3.14
Status: Downloaded newer image for alpine:3.15
...
docker.io/library/alpine:latest
docker.io/library/alpine:3.14
docker.io/library/alpine:3.15
...

Abhängig von der Anzahl der Tags im Repository kann dieser Befehl einige Zeit in Anspruch nehmen.

Sobald der Befehl abgeschlossen ist, können Sie docker images verwenden, um alle heruntergeladenen alpine-Images anzuzeigen.

docker images | grep alpine

Sie werden eine Liste von alpine-Images mit verschiedenen Tags sehen.

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
alpine        latest    ...            ...            ...
alpine        3.14      ...            ...            ...
alpine        3.15      ...            ...            ...
...

Diese Methode ist effizient für das Herunterladen mehrerer Versionen eines Images aus einem einzigen Repository.

Herunterladen eines Images aus einem anderen Registry

In diesem Schritt lernen Sie, wie Sie ein Docker-Image aus einem anderen Registry als Docker Hub herunterladen. Obwohl Docker Hub der Standard-Registry ist, müssen Sie möglicherweise Images aus privaten Registries, Cloud-Provider-Registries (wie Google Container Registry, Amazon Elastic Container Registry) oder anderen öffentlichen Registries herunterladen.

Um ein Image aus einem anderen Registry herunterzuladen, müssen Sie den Hostnamen des Registries vor dem Image-Namen angeben. Das Format ist typischerweise <registry_hostname>/<image_name>:<tag> oder <registry_hostname>/<user_or_organization>/<image_name>:<tag>.

In diesem Beispiel werden wir ein Image aus dem Google Container Registry (GCR) herunterladen. Wir werden das hello-app-Image aus dem google-samples-Projekt herunterladen. Der Hostname des Registries für GCR ist gcr.io.

docker pull gcr.io/google-samples/hello-app:1.0

Dieser Befehl teilt Docker mit, das Image namens hello-app mit dem Tag 1.0 aus dem Registry unter gcr.io im google-samples-Projekt herunterzuladen.

Sie werden eine Ausgabe sehen, die den Download-Prozess aus dem angegebenen Registry anzeigt.

1.0: Pulling from google-samples/hello-app
... (download progress) ...
Status: Downloaded newer image for gcr.io/google-samples/hello-app:1.0
gcr.io/google-samples/hello-app:1.0

Nachdem der Download abgeschlossen ist, können Sie Ihre lokalen Images mit docker images auflisten, um das Image zu sehen, das Sie gerade aus GCR heruntergeladen haben.

docker images

Sie sollten gcr.io/google-samples/hello-app in Ihrer Liste der Images sehen.

REPOSITORY                         TAG       IMAGE ID       CREATED        SIZE
gcr.io/google-samples/hello-app    1.0       ...            ...            ...
ubuntu                             20.04     ...            ...            ...
hello-world                        latest    ...            ...            ...
alpine                             latest    ...            ...            ...
alpine                             3.14      ...            ...            ...
alpine                             3.15      ...            ...            ...
...

Dies zeigt, wie Sie Images aus anderen Registries als dem Standard-Docker Hub herunterladen können, indem Sie den Hostnamen des Registries angeben.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie den Befehl docker pull verwenden, um Docker-Images aus Registries herunterzuladen. Sie haben begonnen, indem Sie spezifische Images von Docker Hub unter Verwendung ihrer Tags heruntergeladen haben und verstanden, dass die Angabe eines Tags für das Abrufen einer bestimmten Version von entscheidender Bedeutung ist. Sie haben auch gelernt, wie Sie die lokal heruntergeladenen Images mit dem Befehl docker images anzeigen können.

Das Lab hat weiterhin gezeigt, wie Sie ein Image anhand seines unveränderlichen Digests (Kryptographischer Hash) herunterladen können, um sicherzustellen, dass Sie genau die gleiche Image-Version abrufen, unabhängig von Tag-Änderungen. Sie haben auch das Herunterladen aller getaggten Images aus einem Repository und das Herunterladen von Images aus anderen Registries als Docker Hub untersucht, wodurch Sie Ihre Fähigkeit erweitert haben, Images aus verschiedenen Quellen zuzugreifen.