Einführung
In diesem Lab lernen Sie, wie Sie den Befehl docker compose ls effektiv nutzen können, um Ihre Docker Compose-Projekte aufzulisten und zu verwalten. Wir beginnen mit der Einrichtung eines Beispiel-Compose-Projekts, einschließlich der Installation von Docker Compose (falls erforderlich), der Erstellung einer docker-compose.yml-Datei und dem Starten des Projekts.
Nach der Projekteinrichtung werden Sie verschiedene Möglichkeiten erkunden, um Ihre Compose-Projekte mit docker compose ls aufzulisten. Dazu gehört das Auflisten nur laufender Projekte, das Auflisten aller Projekte (einschließlich beendeter), die Anzeige nur von Projektnamen und das Filtern von Projekten basierend auf bestimmten Kriterien. Am Ende dieses Labs werden Sie in der Lage sein, docker compose ls sicher zu verwenden, um einen Überblick über Ihre Compose-Umgebungen zu erhalten.
Starten eines Beispiel-Compose-Projekts
In diesem Schritt lernen wir, wie man ein Beispiel-Compose-Projekt startet. Bevor wir Docker Compose verwenden können, müssen wir es installieren. Da die LabEx-VM-Umgebung Docker Compose nicht vorinstalliert hat, werden wir es zuerst installieren.
Wir laden die Docker Compose-Binary herunter und machen sie ausführbar.
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Nach der Installation können wir diese überprüfen, indem wir die Version von Docker Compose abfragen.
docker-compose --version
Sie sollten die Versionsinformationen in der Konsole sehen, was bestätigt, dass Docker Compose korrekt installiert ist.
Nun erstellen wir ein einfaches Compose-Projekt. Wir legen ein Verzeichnis für unser Projekt an und erstellen darin eine docker-compose.yml-Datei. Diese Datei definiert die Services für unsere Anwendung.
Zuerst erstellen wir ein Verzeichnis namens my-compose-app.
mkdir ~/project/my-compose-app
cd ~/project/my-compose-app
Als nächstes erstellen wir im Verzeichnis ~/project/my-compose-app eine Datei namens docker-compose.yml mit dem nano-Editor.
nano docker-compose.yml
Fügen Sie folgenden Inhalt in die docker-compose.yml-Datei ein. Diese Datei definiert einen einzelnen Service namens web, der das nginx-Image verwendet.
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
Speichern Sie die Datei und beenden Sie den nano-Editor (Drücken Sie Strg + X, dann Y, dann Enter).
Bevor wir den Service starten, müssen wir sicherstellen, dass das nginx:latest-Image lokal verfügbar ist. Wir können das Image mit dem docker pull-Befehl herunterladen.
docker pull nginx:latest
Nun, da wir die docker-compose.yml-Datei und das benötigte Image haben, können wir das Compose-Projekt mit dem Befehl docker-compose up starten. Das Flag -d führt die Services im Detached-Modus aus, d.h. sie laufen im Hintergrund.
docker-compose up -d
Dieser Befehl erstellt und startet den web-Service, wie in der docker-compose.yml-Datei definiert. Sie sollten eine Ausgabe sehen, die anzeigt, dass der Service erstellt und gestartet wird.
Um zu überprüfen, ob der Service läuft, können Sie den Befehl docker ps verwenden, um die laufenden Container aufzulisten. Sie sollten einen Container für den web-Service sehen.
docker ps
Sie können auch auf den Nginx-Webserver zugreifen, indem Sie einen Webbrowser öffnen und die IP-Adresse Ihrer LabEx-VM aufrufen. Da wir Port 80 des Containers auf Port 80 des Hosts gemappt haben, sollten Sie die Standard-Nginx-Willkommensseite sehen.
Laufende Compose-Projekte mit docker compose ls auflisten
Im vorherigen Schritt haben wir ein Beispiel-Compose-Projekt namens my-compose-app gestartet. Nun lernen wir, wie man laufende Compose-Projekte mit dem Befehl docker compose ls auflistet.
Der Befehl docker compose ls dient dazu, alle Compose-Projekte aufzulisten. Standardmäßig zeigt er nur laufende Projekte an.
Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project/my-compose-app befinden, wo sich Ihre docker-compose.yml-Datei befindet.
cd ~/project/my-compose-app
Führen Sie nun den Befehl docker compose ls aus.
docker compose ls
Sie sollten eine ähnliche Ausgabe wie diese sehen:
NAME STATUS CONFIG FILES
my-compose-app running docker-compose.yml
Diese Ausgabe zeigt, dass ein laufendes Compose-Projekt namens my-compose-app existiert, das die Konfigurationsdatei docker-compose.yml verwendet.
Der Befehl docker compose ls bietet eine schnelle Möglichkeit zu sehen, welche Ihrer Compose-Projekte aktuell aktiv sind und Container ausführen.
Alle Compose-Projekte inklusive gestoppter mit docker compose ls -a auflisten
Im vorherigen Schritt haben wir laufende Compose-Projekte aufgelistet. Standardmäßig zeigt docker compose ls nur Projekte an, die mindestens einen laufenden Container haben. Um alle Compose-Projekte anzuzeigen, inklusive der gestoppten, müssen wir das -a Flag verwenden.
Zuerst stoppen wir das Projekt my-compose-app, das wir im ersten Schritt gestartet haben. Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project/my-compose-app befinden.
cd ~/project/my-compose-app
Stoppen Sie nun das Projekt mit dem Befehl docker-compose down. Dieser Befehl beendet und entfernt die Container, Netzwerke und Volumes, die durch docker-compose up erstellt wurden.
docker-compose down
Sie sollten eine Ausgabe sehen, die anzeigt, dass die Services und Ressourcen gestoppt und entfernt werden.
Da das Projekt nun gestoppt ist, versuchen wir erneut, die Compose-Projekte mit dem Standardbefehl docker compose ls aufzulisten.
docker compose ls
Diesmal sollte das Projekt my-compose-app nicht aufgelistet werden, da es gestoppt ist.
Verwenden wir nun den Befehl docker compose ls -a, um alle Compose-Projekte inklusive der gestoppten aufzulisten.
docker compose ls -a
Sie sollten nun eine ähnliche Ausgabe wie diese sehen:
NAME STATUS CONFIG FILES
my-compose-app exited docker-compose.yml
Diese Ausgabe zeigt, dass das Projekt my-compose-app existiert, auch wenn sein Status exited (gestoppt) ist. Das -a Flag ist nützlich, um alle auf Ihrem System definierten Compose-Projekte unabhängig von ihrem aktuellen Status anzuzeigen.
Nur Projektnamen mit docker compose ls -q anzeigen
In den vorherigen Schritten haben wir Compose-Projekte mit ihrem Status und Konfigurationsdateien aufgelistet. Manchmal benötigen Sie jedoch nur eine Liste der Projektnamen, beispielsweise für die Verwendung in einem Skript. Der Befehl docker compose ls -q ermöglicht genau dies.
Das -q Flag steht für "quiet" (leise) und unterdrückt alle Ausgaben außer den Projektnamen.
Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project/my-compose-app befinden.
cd ~/project/my-compose-app
Führen Sie nun den Befehl docker compose ls -q aus.
docker compose ls -q
Sie sollten nur den Namen des Compose-Projekts in der Konsole sehen:
my-compose-app
Dies ist nützlich, wenn Sie eine saubere Liste von Projektnamen ohne zusätzliche Informationen benötigen. Sie können das -q Flag mit dem -a Flag kombinieren, um die Namen aller Compose-Projekte inklusive gestoppter Projekte aufzulisten.
Probieren wir das aus:
docker compose ls -a -q
Sie sollten weiterhin sehen:
my-compose-app
Dies bestätigt, dass das -q Flag nur die Projektnamen ausgibt, unabhängig davon, ob das Projekt läuft oder gestoppt ist, wenn es mit -a kombiniert wird.
Compose-Projekte mit docker compose ls --filter filtern
In diesem letzten Schritt untersuchen wir, wie die Ausgabe von docker compose ls mit dem --filter Flag gefiltert werden kann. Dies ist besonders nützlich, wenn Sie viele Compose-Projekte haben und bestimmte Projekte nach bestimmten Kriterien finden möchten.
Das --filter Flag ermöglicht es Ihnen, Schlüssel-Wert-Paare zur Filterung der Ergebnisse anzugeben. Ein gängiger Filter ist nach status.
Zuerst stellen wir sicher, dass unser Projekt my-compose-app gestoppt ist. Wir haben es im vorherigen Schritt gestoppt, aber es ist eine gute Praxis, dies zu bestätigen.
cd ~/project/my-compose-app
docker-compose down
Nun verwenden wir das --filter Flag, um nur laufende Compose-Projekte anzuzeigen. Da unser Projekt gestoppt ist, sollte dieser Befehl keine Ergebnisse anzeigen.
docker compose ls --filter status=running
Sie sollten keine Ausgabe sehen, da keine laufenden Compose-Projekte vorhanden sind.
Jetzt verwenden wir das --filter Flag, um nur gestoppte Compose-Projekte anzuzeigen.
docker compose ls --filter status=exited
Sie sollten eine ähnliche Ausgabe wie diese sehen:
NAME STATUS CONFIG FILES
my-compose-app exited docker-compose.yml
Dies zeigt, dass das Projekt my-compose-app aufgelistet wird, da sein Status exited ist.
Sie können auch nach anderen Kriterien filtern, wie z.B. dem Projektnamen (name). Filtern wir nach dem Projekt mit dem Namen my-compose-app.
docker compose ls --filter name=my-compose-app
Dies sollte ebenfalls das Projekt my-compose-app anzeigen:
NAME STATUS CONFIG FILES
my-compose-app exited docker-compose.yml
Das --filter Flag bietet eine leistungsstarke Möglichkeit, Ihre Compose-Projekte zu verwalten und anzuzeigen, insbesondere in Umgebungen mit vielen verschiedenen Anwendungen, die durch Compose-Dateien definiert sind.
Zusammenfassung
In diesem Lab haben wir gelernt, wie der Befehl docker compose ls verwendet wird, um Docker Compose-Projekte aufzulisten. Wir begannen mit der Installation von Docker Compose und erstellten anschließend ein Beispielprojekt mithilfe einer docker-compose.yml-Datei und des Befehls docker-compose up -d.
Danach haben wir die verschiedenen Optionen des docker compose ls-Befehls untersucht. Wir nutzten:
docker compose lszur Auflistung laufender Projektedocker compose ls -azur Anzeige aller Projekte (inklusive gestoppter)docker compose ls -qfür eine reine Namensliste der Projektedocker compose ls --filterzur Filterung von Projekten nach bestimmten Kriterien
Diese Schritte demonstrierten die Vielseitigkeit des docker compose ls-Befehls für die Verwaltung und Inspektion von Compose-Projekten.



