Einführung
Docker hat die Art und Weise, wie wir Anwendungen entwickeln, bereitstellen und verwalten, revolutioniert. Das Herzstück dieses Ökosystems sind Docker-Images, die als Bausteine für das Erstellen und Ausführen von containerisierten Anwendungen dienen. In diesem Tutorial führen wir Sie durch den Prozess des Pullens von Docker-Images aus einer Registry, ein entscheidender Schritt, um die Leistungsfähigkeit von Docker für Ihre Projekte zu nutzen.
Am Ende dieses Labs werden Sie in der Lage sein, nach Docker-Images zu suchen, sie von Docker Hub zu pullen und zu verstehen, wie Sie sie in Ihren containerisierten Anwendungen verwenden können.
Docker-Images verstehen
Bevor wir mit dem Pullen von Docker-Images beginnen, ist es wichtig zu verstehen, was Docker-Images sind und wie sie funktionieren.
Was ist ein Docker-Image?
Ein Docker-Image ist ein leichtgewichtiges, eigenständiges Paket, das alles enthält, was zum Ausführen einer Anwendung benötigt wird:
- Anwendungscode
- Laufzeitumgebung
- Bibliotheken und Abhängigkeiten
- Umgebungsvariablen
- Konfigurationsdateien
Images sind die Vorlagen, die zum Erstellen von Docker-Containern verwendet werden, welche die laufenden Instanzen dieser Images sind.
Docker Image Repositories
Docker-Images werden in Repositories innerhalb von Registries gespeichert. Die beliebteste öffentliche Registry ist Docker Hub, die Tausende von gebrauchsfertigen Images hostet. Einige wichtige Punkte zu Docker Hub:
- Es enthält offizielle Images, die von Softwareanbietern gepflegt werden
- Es hostet von der Community beigesteuerte Images, die von Benutzern erstellt wurden
- Es ermöglicht Organisationen, private Repositories für proprietäre Images zu haben
Docker Image Benennung
Docker-Images folgen einer spezifischen Benennungskonvention:
[registry/]username/repository:tag
Wobei:
registryder Hostname der Registry ist (optional, standardmäßig Docker Hub)usernameder Docker Hub-Benutzername oder Organisationsname istrepositoryder Image-Name isttagdie Image-Version ist (optional, standardmäßig "latest")
Zum Beispiel: ubuntu:22.04 oder nginx:latest
Überprüfen Ihrer Docker-Installation
Bevor wir fortfahren, stellen wir sicher, dass Docker ordnungsgemäß auf Ihrem System installiert ist. Öffnen Sie ein Terminal und führen Sie aus:
docker --version
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
Docker version 20.10.21, build baeda1f
Dies bestätigt, dass Docker installiert und einsatzbereit ist.
Im nächsten Schritt suchen und pullen wir unser erstes Docker-Image.
Suchen und Pullen Ihres ersten Docker-Images
Nachdem wir verstanden haben, was Docker-Images sind, lernen wir jetzt, wie man sie findet und von Docker Hub pullt.
Suchen nach Docker-Images
Bevor Sie ein Image pullen, möchten Sie möglicherweise nach verfügbaren Optionen suchen. Verwenden Sie den Befehl docker search, um Images auf Docker Hub zu finden:
docker search ubuntu
Dies zeigt Ihnen eine Liste der Ubuntu-bezogenen Images an, die auf Docker Hub verfügbar sind. Sie sollten eine Ausgabe ähnlich der folgenden sehen:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating s... 14938 [OK]
ubuntu-upstart Upstart is an event-based replacement for ... 111 [OK]
rastasheep/ubuntu-sshd Dockerized SSH service, built on top of of... 256 [OK]
...
Die Spalte OFFICIAL, markiert mit [OK], zeigt Images an, die von Docker oder dem Softwareanbieter gepflegt werden.
Pullen eines Docker-Images
Um ein Docker-Image auf Ihren lokalen Rechner herunterzuladen, verwenden Sie den Befehl docker pull, gefolgt vom Image-Namen:
docker pull ubuntu:22.04
Dieser Befehl pullt das Ubuntu 22.04 Image von Docker Hub. Sie sollten einen Download-Fortschritt ähnlich dem folgenden sehen:
22.04: Pulling from library/ubuntu
2ab09b027e7f: Pull complete
Digest: sha256:2b7412e6465c3c7fc5bb21d3e6f1917c167358449fecac8176c6e496e5c1f05f
Status: Downloaded newer image for ubuntu:22.04
docker.io/library/ubuntu:22.04
Die Ausgabe zeigt, dass Docker einzelne Layer des Images herunterlädt. Jeder Layer repräsentiert eine Reihe von Dateisystemänderungen.
Pullen von Images ohne Tag
Wenn Sie kein Tag angeben, pullt Docker das Image mit dem Tag latest:
docker pull nginx
Dies pullt die neueste Version des Nginx-Webserver-Images:
Using default tag: latest
latest: Pulling from library/nginx
a603fa5e3b41: Pull complete
(...more layers...)
Digest: sha256:f9c305f882a7062db720e582ce619686cbe29742eea6e1db6dcf84b200eec560
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
Pullen von anderen Registries
Standardmäßig lädt docker pull Images von Docker Hub herunter. Um von anderen Registries zu pullen, geben Sie den Hostnamen der Registry an:
docker pull mcr.microsoft.com/dotnet/sdk:6.0
Dieser Befehl pullt das .NET SDK 6.0 Image von der Microsoft Container Registry.
Nachdem Sie nun einige Docker-Images gepullt haben, gehen wir zum nächsten Schritt über, um zu lernen, wie man sie verwaltet.
Verwalten von Docker-Images
Nachdem Sie Docker-Images gepullt haben, müssen Sie wissen, wie Sie diese effektiv auflisten, inspizieren und verwalten können.
Auflisten von Docker-Images
Um alle Docker-Images anzuzeigen, die Sie auf Ihren lokalen Rechner heruntergeladen haben, verwenden Sie den Befehl docker images (oder seinen Alias docker image ls):
docker images
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 22.04 58db3edaf2be 3 weeks ago 77.8MB
nginx latest 605c77e624dd 4 weeks ago 142MB
Diese Ausgabe zeigt:
REPOSITORY: Der Name des ImagesTAG: Die Version des ImagesIMAGE ID: Eine eindeutige Kennung für das ImageCREATED: Wann das Image erstellt wurdeSIZE: Die Größe des Images auf der Festplatte
Inspizieren von Docker-Images
Um detaillierte Informationen über ein bestimmtes Image zu erhalten, verwenden Sie den Befehl docker inspect:
docker inspect ubuntu:22.04
Dieser Befehl zeigt ein JSON-Array an, das alle Details über das Image enthält, einschließlich:
- Layer-Informationen
- Umgebungsvariablen
- Architektur
- Betriebssystem
- Konfiguration
Die Ausgabe ist recht lang und detailliert. Hier ist ein Ausschnitt davon:
[
{
"Id": "sha256:58db3edaf2beXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"RepoTags": [
"ubuntu:22.04"
],
"RepoDigests": [
"ubuntu@sha256:2b7412e6465c3fc7fc5bb21d3e6f1917c167358449fecac8176c6e496e5c1f05f"
],
...
}
]
Image-Historie
Um die Layer-Historie eines Images (wie es erstellt wurde) anzuzeigen, verwenden Sie den Befehl docker history:
docker history ubuntu:22.04
Die Ausgabe zeigt jeden Layer, aus dem das Image besteht:
IMAGE CREATED CREATED BY SIZE
58db3edaf2be 3 weeks ago /bin/sh -c #(nop) CMD ["bash"] 0B
<missing> 3 weeks ago /bin/sh -c #(nop) ADD file:15efc167a417... 77.8MB
Entfernen von Docker-Images
Wenn Sie ein Image nicht mehr benötigen, können Sie es entfernen, um Speicherplatz freizugeben, indem Sie den Befehl docker rmi verwenden:
docker rmi nginx
Wenn erfolgreich, zeigt Docker die entfernten Image-IDs an:
Untagged: nginx:latest
Untagged: nginx@sha256:f9c305f882a7062db720e582ce619686cbe29742eea6e1db6dcf84b200eec560
Deleted: sha256:605c77e624ddb75e6110f997c58876bba43f0blindividualayeridshereXX
(...more layers deleted...)
Wenn das Image von einem Container verwendet wird, müssen Sie zuerst den Container entfernen oder die Option -f (force) verwenden:
docker rmi -f nginx
Jetzt wissen Sie, wie Sie Ihre Docker-Images verwalten können. Gehen wir zum letzten Schritt über, in dem wir tatsächlich ein Image verwenden, um einen Container auszuführen.
Verwenden von Docker-Images
Das Pullen von Docker-Images ist nur der erste Schritt. Lassen Sie uns nun lernen, wie man diese Images verwendet, um Container auszuführen.
Ausführen eines Containers aus einem Image
Um einen Container aus einem Image zu erstellen und zu starten, verwenden Sie den Befehl docker run:
docker run ubuntu:22.04 echo "Hello from Ubuntu container"
Dieser Befehl:
- Erstellt einen neuen Container aus dem Image
ubuntu:22.04 - Führt den Befehl
echo "Hello from Ubuntu container"innerhalb des Containers aus - Zeigt die Ausgabe an:
Hello from Ubuntu container
Nach der Ausführung des Befehls stoppt der Container, da er seine Aufgabe abgeschlossen hat.
Ausführen eines interaktiven Containers
Um eine interaktive Shell innerhalb eines Containers zu starten, verwenden Sie die Optionen -i (interaktiv) und -t (Terminal):
docker run -it ubuntu:22.04 bash
Dies gibt Ihnen eine Bash-Shell innerhalb des Ubuntu-Containers, in der Sie Befehle ausführen können:
root@a1b2c3d4e5f6:/## ls
bin dev home lib32 libx32 mnt proc run srv tmp var
boot etc lib lib64 media opt root sbin sys usr
Um den Container zu verlassen, geben Sie exit ein oder drücken Sie Ctrl+D:
root@a1b2c3d4e5f6:/## exit
exit
Ausführen eines Containers im Detached-Modus
Um einen Container im Hintergrund (Detached-Modus) auszuführen, verwenden Sie die Option -d:
docker run -d --name nginx-server -p 8080:80 nginx
Dieser Befehl:
- Erstellt einen Container namens
nginx-serveraus demnginx-Image - Führt ihn im Detached-Modus (
-d) aus - Mappt Port 8080 auf Ihrem Host auf Port 80 im Container
- Gibt eine Container-ID zurück:
e1d0ac1dcb21a93d9d878dcf40c054eb9f3c2b1bf5ecce7c29b6fa8ce6b219c1
Zugriff auf den laufenden Container
Jetzt können Sie über http://localhost:8080 in Ihrem Browser auf den Nginx-Webserver zugreifen oder curl verwenden, um zu überprüfen, ob er funktioniert:
curl localhost:8080
Dies sollte die Nginx-Willkommensseite HTML anzeigen:
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...
</html>
Auflisten der laufenden Container
Um alle laufenden Container anzuzeigen, verwenden Sie:
docker ps
Dies zeigt Informationen über Ihre laufenden Container an:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e1d0ac1dcb21 nginx "/docker-entrypoint.…" 30 seconds ago Up 29 seconds 0.0.0.0:8080->80/tcp nginx-server
Stoppen und Entfernen von Containern
Um einen laufenden Container zu stoppen:
docker stop nginx-server
Um einen gestoppten Container zu entfernen:
docker rm nginx-server
Sie haben jetzt erfolgreich Docker-Images verwendet, um Container auszuführen. Dies ist der grundlegende Workflow für die Verwendung von Docker in Ihren Entwicklungs- und Bereitstellungsprozessen.
Zusammenfassung
Herzlichen Glückwunsch zum Abschluss dieses Docker-Image-Labs. Sie haben die wesentlichen Fähigkeiten für die Arbeit mit Docker-Images gelernt:
- Verstehen, was Docker-Images sind und wie sie in Registries organisiert sind
- Suchen und Pullen von Docker-Images von Docker Hub
- Verwalten Ihrer lokalen Docker-Images, einschließlich Auflisten, Inspizieren und Entfernen
- Verwenden von Docker-Images zum Ausführen von Containern in verschiedenen Modi
Diese Fähigkeiten bilden die Grundlage für die Arbeit mit Docker und ermöglichen es Ihnen, Containerisierung in Ihrem Entwicklungsworkflow zu nutzen. Sie können jetzt jedes Docker-Image aus öffentlichen oder privaten Registries pullen und es verwenden, um containerisierte Anwendungen auszuführen.
Nächste Schritte für weiteres Lernen:
- Erstellen Ihrer eigenen Docker-Images mit Dockerfiles
- Arbeiten mit Docker Compose für Multi-Container-Anwendungen
- Verwenden von Docker-Volumes für persistenten Speicher
- Einrichten von Container-Netzwerken
Erkunden Sie weiterhin das riesige Ökosystem von Docker-Images, das auf Docker Hub verfügbar ist, um Tools und Anwendungen zu finden, die Ihren Entwicklungsprozess beschleunigen können.



