Wie man nach Docker-Images sucht

DockerDockerBeginner
Jetzt üben

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

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:

  1. Die Docker Hub-Website besuchen (hub.docker.com)
  2. Den Befehl docker image inspect verwenden (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:

  1. Offizielle Images: Bevorzugen Sie offizielle Images, da diese vom Softwareanbieter gepflegt werden
  2. Beliebte Images: Eine höhere Sternanzahl deutet auf mehr Benutzer und potenziell bessere Wartung hin
  3. Aktuelle Updates: Überprüfen Sie, wann das Image zuletzt aktualisiert wurde
  4. Dokumentation: Suchen Sie nach Images mit guter Dokumentation
  5. 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-name oder nur image-name fü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:

  1. Erstellt einen neuen Container basierend auf dem Ubuntu-Image
  2. Führt den Befehl echo "Hello from Docker" innerhalb des Containers aus
  3. 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:

  1. Erstellt (Created): Container wird erstellt, aber nicht gestartet
  2. Läuft (Running): Container wird aktuell ausgeführt
  3. Pausiert (Paused): Die Containerausführung wird pausiert
  4. Gestoppt (Stopped): Container wurde beendet, existiert aber noch
  5. 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:

  1. Ihre Docker-Installation verifiziert und das Konzept der Docker-Images verstanden
  2. Gelernt, wie man mit dem Befehl docker search nach Docker-Images sucht
  3. Docker-Images mit docker pull auf Ihren lokalen Rechner heruntergeladen
  4. Ihre lokalen Docker-Images aufgelistet und inspiziert
  5. Container aus diesen Images mit verschiedenen docker run-Optionen erstellt und ausgeführt
  6. 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.