Umgebungsvariablen für den Exec-Prozess setzen
In diesem Schritt lernen Sie, wie Sie Umgebungsvariablen speziell für den mit docker exec
ausgeführten Befehl festlegen können. Dies ermöglicht es Ihnen, Konfigurationen oder andere Informationen an den im Container laufenden Prozess zu übergeben, ohne die Umgebung des Containers dauerhaft zu verändern.
Wir verwenden weiterhin den laufenden ubuntu
-Container aus den vorherigen Schritten. Falls dieser nicht läuft, starten Sie ihn mit:
docker run -d ubuntu:latest sleep infinity
Ermitteln Sie die Container-ID Ihres laufenden ubuntu
-Containers mit docker ps
:
docker ps
Nun führen wir einen Befehl im Container aus und setzen dabei eine Umgebungsvariable speziell für diese Ausführung. Wir verwenden den Befehl printenv
, um Umgebungsvariablen anzuzeigen. Ersetzen Sie <container_id>
durch Ihre Container-ID.
docker exec -e MY_VARIABLE="Hello from LabEx" MY_VARIABLE < container_id > printenv
Die neue Option im Detail:
-e MY_VARIABLE="Hello from LabEx"
: Diese Option setzt eine Umgebungsvariable namens MY_VARIABLE
mit dem Wert "Hello from LabEx"
für den ausgeführten printenv
-Befehl.
Sie sollten die Ausgabe Hello from LabEx
in Ihrem Terminal sehen. Dies bestätigt, dass die Umgebungsvariable erfolgreich für den printenv
-Prozess gesetzt wurde.
Um zu demonstrieren, dass diese Umgebungsvariable nur für den exec
-Prozess und nicht für den Hauptprozess des Containers gesetzt ist, führen wir printenv MY_VARIABLE
erneut ohne die -e
-Option aus:
docker exec MY_VARIABLE < container_id > printenv
Diesmal sollten Sie keine Ausgabe sehen oder möglicherweise eine Fehlermeldung, die anzeigt, dass die Variable nicht gesetzt ist. Dies zeigt, dass die Umgebungsvariable nur für den mit dem -e
-Flag ausgeführten Befehl verfügbar war.
Das Setzen von Umgebungsvariablen mit docker exec -e
ist eine praktische Methode, um dynamische Konfigurationen an Prozesse in Ihren Containern zu übergeben.