Einführung
Docker hat sich zu einem unverzichtbaren Werkzeug für die moderne Softwareentwicklung entwickelt und ermöglicht es Entwicklern, Anwendungen auf konsistente und zuverlässige Weise zu verpacken und bereitzustellen. Docker-Images dienen als Bausteine für containerisierte Anwendungen und bieten vorkonfigurierte Umgebungen, die einfach geteilt und bereitgestellt werden können.
In diesem praktischen Lab werden Sie lernen, wie Sie mit der Docker-Befehlszeilenschnittstelle nach Docker-Images suchen, diese Images auf Ihren lokalen Rechner ziehen und Container basierend auf diesen Images ausführen. Am Ende dieses Tutorials werden Sie über die Fähigkeiten verfügen, Docker-Images zu finden und zu verwenden, die Ihren spezifischen Projektanforderungen entsprechen.
Überprüfen der Docker-Installation
Bevor wir mit der Suche nach Docker-Images beginnen, wollen wir zunächst überprüfen, ob Docker auf Ihrem System korrekt installiert ist und läuft.
Überprüfung der Docker-Installation
Öffnen Sie ein Terminalfenster und führen Sie den folgenden Befehl aus, um zu überprüfen, ob Docker installiert ist:
docker --version
Sie sollten eine Ausgabe ähnlich dieser sehen:
Docker version 20.10.21, build baeda1f
Dies bestätigt, dass Docker auf Ihrem System installiert ist. Die Versionsnummer kann je nach Ihrer Installation abweichen.
Überprüfung des Docker-Dienststatus
Lassen Sie uns auch überprüfen, ob der Docker-Dienst ordnungsgemäß läuft, indem wir Folgendes ausführen:
sudo systemctl status docker
Sie sollten eine Ausgabe sehen, die anzeigt, dass der Docker-Dienst aktiv ist und läuft:
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since...
Wenn Docker aus irgendeinem Grund nicht läuft, können Sie es mit folgendem Befehl starten:
sudo systemctl start docker
Verständnis von Docker-Images
Ein Docker-Image ist eine schreibgeschützte Vorlage, die eine Reihe von Anweisungen zur Erstellung eines Containers enthält. Sie können sich ein Image als einen Snapshot oder eine Blaupause einer Anwendung zusammen mit ihrer Umgebung, ihren Abhängigkeiten und ihrer Konfiguration vorstellen.
Docker-Images sind:
- Geschichtet (Layered): Erstellt mit einer Reihe von Layern, die zwischen Images geteilt werden können
- Schreibgeschützt (Read-only): Können nach der Erstellung nicht mehr geändert werden
- Benannt und getaggt (Tagged): Identifiziert durch einen Namen und einen optionalen Tag (z.B.
ubuntu:22.04)
Im nächsten Schritt werden wir lernen, wie man nach diesen Images sucht.
Suchen nach Docker-Images
Docker Hub ist die offizielle öffentliche Registry für Docker-Images. Es enthält Tausende von Images, darunter offizielle Images, die von Softwareanbietern gepflegt werden, und Community-Images, die von Docker-Benutzern erstellt wurden.
Einfache Image-Suche
Um nach Docker-Images zu suchen, verwenden Sie den Befehl docker search, gefolgt von einem Suchbegriff. Suchen wir nach Ubuntu-Images:
docker search ubuntu
Sie sehen eine Ausgabe ähnlich dieser:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating sys… 14938 [OK]
ubuntu-upstart Upstart is an event-based replacement for th… 112 [OK]
rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 254 [OK]
...
Die Ausgabe zeigt:
- NAME: Der Image-Name
- DESCRIPTION: Eine kurze Beschreibung des Images
- STARS: Anzahl der Benutzer, die das Image mit einem Stern markiert haben (Popularitätsindikator)
- OFFICIAL: Tag, der ein offizielles Image anzeigt, das vom Softwareanbieter gepflegt wird
- AUTOMATED: Tag, der ein Image anzeigt, das durch einen automatisierten Prozess erstellt wurde
Filtern der Suchergebnisse
Sie können die Suchergebnisse mit der Option --filter filtern. Um beispielsweise nur offizielle Images anzuzeigen:
docker search --filter=is-official=true ubuntu
Um Images mit mindestens 100 Sternen (beliebte Images) zu finden:
docker search --filter=stars=100 ubuntu
Sie können auch mehrere Filter kombinieren:
docker search --filter=is-official=true --filter=stars=100 nginx
Dieser Befehl sucht nach offiziellen Nginx-Images mit mindestens 100 Sternen.
Finden spezifischer Versionen
Der Befehl docker search zeigt keine Image-Tags (Versionen) an, aber Sie können sie finden, indem Sie:
- Die Docker Hub-Website besuchen (hub.docker.com)
- Den Befehl
docker image inspectverwenden (nachdem Sie das Image gezogen haben)
Um beispielsweise alle verfügbaren Ubuntu-Versionen anzuzeigen, besuchen Sie: https://hub.docker.com/_/ubuntu?tab=tags
Auswahl des richtigen Images
Berücksichtigen Sie bei der Auswahl eines Docker-Images Folgendes:
- Offizielle Images: Bevorzugen Sie offizielle Images, da diese vom Softwareanbieter gepflegt werden
- Beliebte Images: Eine höhere Sternanzahl deutet auf mehr Benutzer und potenziell bessere Wartung hin
- Aktuelle Updates: Überprüfen Sie, wann das Image zuletzt aktualisiert wurde
- Dokumentation: Suchen Sie nach Images mit guter Dokumentation
- Größe: Berücksichtigen Sie die Image-Größe, da kleinere Images schneller heruntergeladen werden
Herunterladen von Docker-Images
Sobald Sie ein Image gefunden haben, das Sie verwenden möchten, können Sie es mit dem Befehl docker pull auf Ihren lokalen Rechner herunterladen.
Ziehen eines Images (Pulling an Image)
Laden wir das offizielle Ubuntu-Image herunter:
docker pull ubuntu
Sie sehen eine Ausgabe ähnlich dieser:
Using default tag: latest
latest: Pulling from library/ubuntu
7b1a6ab2e44d: Pull complete
Digest: sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
Standardmäßig zieht Docker den Tag latest. Um eine bestimmte Version herunterzuladen, fügen Sie einen Tag hinzu:
docker pull ubuntu:20.04
Sie sehen eine Ausgabe, die den Download-Fortschritt für diese spezifische Version anzeigt.
Auflisten der heruntergeladenen Images
Um alle heruntergeladenen Images anzuzeigen, verwenden Sie:
docker images
Oder das neuere Befehlsformat:
docker image ls
Beide Befehle erzeugen die gleiche Ausgabe:
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 1318b700e415 4 weeks ago 72.8MB
ubuntu 20.04 1318b700e415 4 weeks ago 72.8MB
Verständnis von Image-Tags
Docker-Images werden durch Tags identifiziert. Das Tag-Format ist typischerweise:
repository:tag
Wobei:
- repository: Normalerweise im Format
username/image-nameoder nurimage-namefür offizielle Images - tag: Gibt die Version an (z.B.
latest,20.04,3.9-alpine)
Wenn Sie das Tag weglassen, geht Docker davon aus, dass Sie das Tag latest wünschen.
Abrufen von Image-Details
Um detaillierte Informationen über ein Image anzuzeigen, verwenden Sie:
docker image inspect ubuntu:latest
Dieser Befehl zeigt ein JSON-Objekt mit allen Image-Metadaten an, einschließlich Layern, Konfiguration und Umgebungsvariablen.
Um die Historie der Image-Layer anzuzeigen:
docker history ubuntu:latest
Dies zeigt, wie das Image Schicht für Schicht erstellt wurde.
Ausführen von Containern aus Images
Nachdem Sie einige Docker-Images heruntergeladen haben, wollen wir lernen, wie man Container basierend auf diesen Images erstellt und ausführt.
Ausführen eines einfachen Containers
Um einen Container aus einem Image auszuführen, verwenden Sie den Befehl docker run:
docker run ubuntu echo "Hello from Docker"
Dieser Befehl:
- Erstellt einen neuen Container basierend auf dem Ubuntu-Image
- Führt den Befehl
echo "Hello from Docker"innerhalb des Containers aus - Beendet sich, nachdem der Befehl abgeschlossen ist
Sie sollten die Ausgabe sehen:
Hello from Docker
Ausführen eines interaktiven Containers
Um mit einem Container zu interagieren, verwenden Sie die Flags -it (interaktives Terminal):
docker run -it ubuntu bash
Dies startet eine Bash-Shell innerhalb des Containers. Sie befinden sich jetzt effektiv "innerhalb" des Containers und können Befehle ausführen.
Probieren Sie ein paar Befehle aus:
ls
cat /etc/os-release
Um den Container zu verlassen, geben Sie ein:
exit
Auflisten der laufenden Container
Um alle laufenden Container anzuzeigen:
docker ps
Da unsere Container sofort nach Abschluss beendet wurden, sehen Sie möglicherweise keine Ausgabe. Um alle Container anzuzeigen, einschließlich der gestoppten:
docker ps -a
Dies zeigt alle Container, ihren Status und wann sie erstellt/beendet wurden.
Container-Lebenszyklus (Container Lifecycle)
Container haben einen Lebenszyklus:
- Erstellt (Created): Container wird erstellt, aber nicht gestartet
- Läuft (Running): Container wird aktuell ausgeführt
- Pausiert (Paused): Die Containerausführung wird pausiert
- Gestoppt (Stopped): Container wurde beendet, existiert aber noch
- Entfernt (Removed): Container wird gelöscht
Sie können einen gestoppten Container mit folgendem Befehl entfernen:
docker rm <container_id>
Ersetzen Sie <container_id> durch die ID, die in der Ausgabe von docker ps -a angezeigt wird.
Um einen Container nach dem Beenden automatisch zu entfernen, verwenden Sie das Flag --rm:
docker run --rm ubuntu echo "This container will be removed after execution"
Ausführen eines Webserver-Containers
Versuchen wir etwas Praktischeres, indem wir einen Nginx-Webserver ausführen:
docker pull nginx:alpine
Dies zieht ein leichtgewichtiges Nginx-Image basierend auf Alpine Linux.
Führen Sie nun einen Container aus, der Port 8080 auf Ihrem Host auf Port 80 im Container mappt:
docker run -d -p 8080:80 --name my-nginx nginx:alpine
Dieser Befehl:
-d: Führt den Container im Detached-Modus (Hintergrund) aus-p 8080:80: Mappt Port 8080 auf Ihrem Host auf Port 80 im Container--name my-nginx: Benennt den Container "my-nginx"
Jetzt können Sie auf die Nginx-Willkommensseite zugreifen, indem Sie in einem Webbrowser zu http://localhost:8080 navigieren oder curl verwenden:
curl http://localhost:8080
Sie sollten den HTML-Inhalt der Nginx-Willkommensseite sehen.
Um diesen Container zu stoppen und zu entfernen:
docker stop my-nginx
docker rm my-nginx
Zusammenfassung
Herzlichen Glückwunsch zum Abschluss dieses Labors zur Docker-Image-Suche und -Nutzung. In diesem Tutorial haben Sie:
- Ihre Docker-Installation verifiziert und das Konzept der Docker-Images verstanden
- Gelernt, wie man mit dem Befehl
docker searchnach Docker-Images sucht - Docker-Images mit
docker pullauf Ihren lokalen Rechner heruntergeladen - Ihre lokalen Docker-Images aufgelistet und inspiziert
- Container aus diesen Images mit verschiedenen
docker run-Optionen erstellt und ausgeführt - Den Container-Lebenszyklus verstanden und gelernt, wie man Container verwaltet
Diese Fähigkeiten bilden die Grundlage für die Arbeit mit Docker in Ihren Entwicklungsprojekten. Sie können jetzt nach Docker-Images suchen, diese herunterladen und verwenden, um containerisierte Umgebungen für Ihre Anwendungen zu erstellen.
Die nächsten Schritte auf Ihrer Docker-Reise könnten Folgendes umfassen:
- Lernen, wie man mit Dockerfiles eigene Docker-Images erstellt
- Docker-Netzwerke und Datenpersistenz verstehen
- Docker Compose für Multi-Container-Anwendungen erkunden
- Sich mit Container-Orchestrierung mit Kubernetes beschäftigen
Experimentieren Sie weiter mit verschiedenen Docker-Images, um das riesige Ökosystem der vorgefertigten Container zu entdecken, die verfügbar sind, um Ihren Entwicklungs-Workflow zu beschleunigen.



