Docker-Umgebungsvariablen Grundlagen
Was sind Docker-Umgebungsvariablen?
Docker-Umgebungsvariablen sind dynamische Werte, die verwendet werden können, um Container zu konfigurieren und das Anwendungsverhalten zu ändern, ohne den Code zu verändern. Sie bieten eine flexible Möglichkeit, Konfigurationseinstellungen zwischen dem Hostsystem und Docker-Containern zu übergeben.
Arten von Umgebungsvariablen
1. Statische Umgebungsvariablen
Statische Umgebungsvariablen sind vordefiniert und werden direkt im Dockerfile oder der docker-compose Datei festgelegt.
FROM ubuntu:22.04
ENV APP_VERSION=1.0
ENV DATABASE_HOST=localhost
2. Laufzeit-Umgebungsvariablen
Laufzeit-Umgebungsvariablen werden beim Starten eines Containers mit dem Flag -e
oder --env
übergeben.
docker run -e DATABASE_PASSWORD=secret myapp
Umfang von Umgebungsvariablen
graph TD
A[Docker-Umgebungsvariable Bereiche] --> B[Container-Ebene]
A --> C[Service-Ebene]
A --> D[Globale Ebene]
Bereich |
Beschreibung |
Beispiel |
Container-Ebene |
Variablen, die spezifisch für einen einzelnen Container sind |
docker run -e DEBUG=true |
Service-Ebene |
Variablen, die auf einen bestimmten Service in docker-compose angewendet werden |
docker-compose Servicedefinition |
Globale Ebene |
Variablen, die im Hostsystem festgelegt sind |
Systemweite Umgebungsvariablen |
Best Practices
- Verwenden Sie Umgebungsvariablen für sensible Informationen.
- Vermeiden Sie die direkte Einbindung von Konfigurationswerten im Code.
- Verwenden Sie
.env
-Dateien zur Verwaltung mehrerer Umgebungsvariablen.
- Nutzen Sie Docker Secrets für sensible Daten.
Beispiel: Praktische Implementierung
## Erstellen Sie eine .env-Datei
echo "DATABASE_URL=postgresql://user:password@localhost/mydb" > .env
## Verwenden Sie Umgebungsvariablen in docker-compose
docker-compose --env-file .env up
LabEx Tipp
LabEx bietet interaktive Umgebungen, um Docker-Umgebungsvariablen zu üben und mit verschiedenen Konfigurationsszenarien zu experimentieren.