3.1 Grundlagen des Befehls docker ps
Der Befehl docker ps
gehört zu den nützlichsten im Docker-Arsenal. Er zeigt eine Liste der laufenden Container an und stellt Informationen über sie bereit. In dieser Vorlesung gehen wir ins Detail, wie du docker ps
verwenden kannst, um den Zustand deiner Container zu überprüfen, und welche Parameter für eine detailliertere Anzeige verfügbar sind.
Standardmäßig gibt der Befehl docker ps
nur die Container aus, die momentan laufen.
Syntax
docker ps [OPTIONS]
Wo:
-
OPTIONS
: zusätzliche Parameter zum Filtern und Formatieren der Ausgabe.
Beispiel für die Basisnutzung
docker ps
Dieser Basisaufruf des Befehls docker ps zeigt eine Liste aller laufenden Container an. Die Ausgabe wird die folgenden Felder enthalten:
- CONTAINER ID: die einzigartige ID des Containers.
- IMAGE: das Image, aus dem der Container erstellt wurde.
- COMMAND: der Befehl, der im Container ausgeführt wird.
- CREATED: die Zeit, die seit der Erstellung des Containers vergangen ist.
- STATUS: der aktuelle Zustand des Containers (z.B. Up 5 minutes).
- PORTS: weitergeleitete Ports.
- NAMES: der Name des Containers.
Liste aller Container
Um alle Container anzuzeigen, einschließlich der gestoppten, verwende die Option -a:
docker ps -a
Dieser Befehl zeigt eine Liste aller Container an, die jemals gestartet wurden, zusammen mit ihrem aktuellen Zustand (gestartet, gestoppt usw.).
3.2 Ausgabe filtern
Docker bietet die Möglichkeit, die Ausgabe des Befehls docker ps
zu filtern, um nur die Container anzuzeigen, die bestimmten Kriterien entsprechen.
1. Filtern nach Status
Zum Beispiel, um nur gestoppte Container anzuzeigen:
docker ps -f "status=exited"
2. Filtern nach Name
Um Container mit einem bestimmten Namen oder einem Teil davon anzuzeigen:
docker ps -f "name=my_container"
3. Filtern nach Image
Um Container anzuzeigen, die aus einem bestimmten Image erstellt wurden:
docker ps -f "ancestor=nginx"
3.3 Ausgabe formatieren
Du kannst die Ausgabe des docker ps
-Kommandos anpassen, um sie übersichtlicher zu machen oder nur die Felder einzuschließen, die du brauchst. Dafür wird der Parameter --format
verwendet.
Beispiel für die Formatierung
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"
Dieses Beispiel gibt eine Tabelle mit der Container-ID, dem Namen und dem Status aus.
Verfügbare Tabellenspalten
- {{.ID}}: Container-ID.
- {{.Image}}: Container-Image.
- {{.Command}}: Kommando, das im Container ausgeführt wird.
- {{.CreatedAt}}: Zeitpunkt der Erstellung des Containers.
- {{.RunningFor}}: Laufzeit des Containers.
- {{.Status}}: aktueller Status des Containers.
- {{.Ports}}: weitergeleitete Ports.
- {{.Names}}: Name des Containers.
Anwendungsbeispiele
Beispiel 1: Nur Container-IDs anzeigen
Dieses Beispiel gibt nur die IDs der laufenden Container aus. Nützlich für Skripte.
docker ps -q
Beispiel 2: Container anzeigen, die in den letzten 24 Stunden gestartet wurden
docker ps --filter "since=24h"
Beispiel 3: Container mit einem bestimmten Status anzeigen und Ausgabe formatieren
Dieses Beispiel gibt eine Tabelle mit den Namen der Container, ihrem Status und den weitergeleiteten Ports für alle laufenden Container aus.
docker ps -f "status=running" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
3.4 Praktische Szenarien
1. Überwachung laufender Container
Wenn du mehrere Container laufen hast, kannst du mit dem Befehl docker ps
schnell ihren aktuellen Status überprüfen und sicherstellen, dass alles korrekt funktioniert.
docker ps
2. Suche und Entfernung gestoppter Container
Nach Abschluss der Arbeit bleiben gestoppte Container im System, bis du sie entfernst. Du kannst docker ps -a
verwenden, um alle gestoppten Container zu finden und sie dann zu löschen.
docker ps -a -f "status=exited"
docker rm $(docker ps -a -f "status=exited" -q)
3. Automatisierung von Aufgaben
Die Verwendung des Befehls docker ps
in Skripten ermöglicht dir die Automatisierung verschiedener Administrationsaufgaben für Container. Zum Beispiel kannst du Berichte über den Status der Container erstellen oder Container automatisch neu starten, falls sie gestoppt wurden.
if [ $(docker ps -q -f "name=my_container") ]; then
echo "Container läuft"
else
docker start my_container
fi
Wichtig! Dieser "Code" ist für ein Linux-Terminal geschrieben. Vielleicht musst du dich damit beschäftigen.
GO TO FULL VERSION