5.1 Grundlagen des Befehls docker exec
Der Befehl docker exec ist ein Werkzeug zur Interaktion mit laufenden Containern. Er ermöglicht es, Befehle auszuführen und interaktive Sitzungen innerhalb eines Containers zu starten. Das ist nützlich für Verwaltungsaufgaben, Debugging und Monitoring. In dieser Vorlesung werden wir detailliert besprechen, wie der Befehl docker exec verwendet wird, welche Parameter verfügbar sind und praktische Beispiele anführen.
Der Befehl docker exec wird verwendet, um Befehle in einem laufenden Container auszuführen. Mit seiner Hilfe kann man in den Container gelangen und mit ihm interagieren, als ob man direkt mit einem Server arbeiten würde.
Syntax
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
Wo:
-
CONTAINER: Name oder ID des Containers, in den du dich einloggen möchtest. -
COMMAND: Der Befehl, den du innerhalb des Containers ausführen möchtest. ARG...: Argumente für den Befehl.
Grundlegendes Anwendungsbeispiel
Dieses Beispiel führt den Befehl ls /app innerhalb des Containers my_container aus, was es ermöglicht, den Inhalt des Verzeichnisses /app im Container anzuzeigen.
docker exec my_container ls /app
5.2 Parameter des Befehls docker exec
Der Befehl docker exec unterstützt mehrere Optionen, die es ermöglichen, das Verhalten der Befehlsausführung innerhalb eines Containers anzupassen.
1. Interaktive Sitzung starten
Um eine interaktive Sitzung zu starten, benutze die Kombination der Optionen -i (interactive) und -t (pseudo-TTY).
docker exec -it my_container /bin/bash
In diesem Beispiel wird ein interaktives Bash-Terminal innerhalb des Containers my_container geöffnet. Dadurch kannst du Befehle in Echtzeit ausführen.
2. Befehle im Detached-Modus ausführen
Wenn du einen Befehl innerhalb eines Containers ausführen möchtest, ohne auf dessen Abschluss zu warten, kannst du die Option -d (detached mode) verwenden.
docker exec -d my_container touch /app/newfile.txt
In diesem Beispiel erstellt der Befehl eine leere Datei newfile.txt im Verzeichnis /app des Containers my_container. Die Kontrolle über das Terminal wird sofort nach der Befehlsausführung zurückgegeben, ohne auf dessen Abschluss zu warten.
3. Benutzerdefinierte Umgebung angeben
Du kannst Umgebungsvariablen mit Hilfe des Parameters -e an den Container übergeben.
docker exec -e MY_VAR=value my_container env
Dieses Beispiel übergibt die Umgebungsvariable MY_VAR an den Container und führt den Befehl env aus, um alle Umgebungsvariablen innerhalb des Containers anzuzeigen.
5.3 Beispiele zur Verwendung
Beispiel 1: Anzeige der laufenden Prozesse im Container
Dieses Beispiel führt den Befehl ps aux im Container my_container aus und zeigt die Liste aller laufenden Prozesse an.
docker exec my_container ps aux
Beispiel 2: Überprüfung des Zustands eines Dienstes im Container
Dieses Beispiel führt den Befehl service nginx status im Container my_container aus und zeigt den Zustand des Dienstes nginx an.
docker exec my_container service nginx status
Beispiel 3: Installation eines Pakets im Container
Dieses Beispiel aktualisiert die Paketliste und installiert den Editor vim im Container my_container.
docker exec my_container apt-get update && apt-get install -y vim
5.4 Praktische Szenarien
1. Container-Administration
Der Befehl docker exec ermöglicht es Administratoren, Wartungsaufgaben in Containern durchzuführen: Konfigurationsdateien bearbeiten, Logs überprüfen oder Zugriffsrechte für Dateien ändern.
docker exec -it my_container vim /etc/nginx/nginx.conf
2. Debugging von Anwendungen
Während der Entwicklung und beim Testen von Anwendungen hilft der Befehl docker exec Entwicklern, den Zustand der Anwendung zu überprüfen, Debugging durchzuführen und Fehler zu analysieren.
docker exec -it my_container python /app/scripts/debug.py
3. Monitoring und Diagnose
Mit ddocker exec können Diagnose-Befehle ausgeführt und der Zustand des Containers überwacht werden: Ressourcennutzung prüfen, Netzwerkverbindungen analysieren und andere Metriken überwachen.
docker exec my_container top
Dieser Befehl startet das Tool top in dem Container my_container und zeigt die aktuelle Ressourcennutzung an.
5.5 Zusätzliche Empfehlungen
1. Sicherheit gewährleisten
Wenn du den Befehl docker exec nutzt, ist es wichtig, auf Sicherheit zu achten. Stelle sicher, dass der Zugriff auf die Container eingeschränkt ist und nur autorisierte Benutzer Befehle innerhalb der Container ausführen können.
2. Aufgaben automatisieren
Du kannst Routineaufgaben mit Skripten automatisieren, die den Befehl ddocker exec verwenden. Das erlaubt es, komplexe Workflows zu erstellen und die Verwaltung von Containern zu automatisieren.
#!/bin/bash
for container in $(docker ps -q); do
docker exec $container uptime
done
Dieses Skript führt den Befehl uptime in allen laufenden Containern aus und zeigt deren Laufzeit an.
3. Logs und Debugging
Manchmal kann die Ausführung eines Befehls fehlschlagen. In solchen Fällen ist es hilfreich, die Logs des Containers zu überprüfen, um die Ursache zu erkennen.
docker logs my_container
GO TO FULL VERSION