Verwalten und Verwenden von Umgebungsvariablen
Zugriff auf Umgebungsvariablen in Containern
Sobald Sie Umgebungsvariablen in Ihrer Dockerfile definiert haben, können Sie sie innerhalb des laufenden Containers mit der Standard-Shell-Syntax zugreifen. Beispielsweise können Sie in einem Bash-Skript den Wert der Umgebungsvariablen DB_HOST
wie folgt abrufen:
echo "Database host: $DB_HOST"
Sie können auch Umgebungsvariablen in Ihrem Anwendungscode verwenden, je nachdem, welche Programmiersprache und welches Framework Sie nutzen.
Überschreiben von Umgebungsvariablen zur Laufzeit
Wenn Sie einen Docker-Container ausführen, können Sie die in der Dockerfile definierten Umgebungsvariablen mit der Option --env
oder -e
überschreiben. Dies ermöglicht es Ihnen, das Verhalten Ihres Containers einfach anzupassen, ohne das Image neu erstellen zu müssen.
docker run -e DB_HOST=192.168.1.100 -e DB_PASSWORD=newpassword myapp
In diesem Beispiel werden die Umgebungsvariablen DB_HOST
und DB_PASSWORD
zur Laufzeit überschrieben und haben Vorrang vor den in der Dockerfile definierten Werten.
Verwalten von Umgebungsvariablen mit Docker Compose
Wenn Sie Docker Compose verwenden, um Ihre Anwendung zu verwalten, können Sie Umgebungsvariablen im environment
-Abschnitt Ihrer docker-compose.yml
-Datei definieren. Dies ermöglicht es Ihnen, die Konfiguration für Ihren gesamten Anwendungsstapel zu zentralisieren.
version: "3"
services:
web:
image: myapp
environment:
DB_HOST: mysql
DB_PORT: 3306
DB_USER: myuser
DB_PASSWORD: secret
mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: secret
In diesem Beispiel werden die Umgebungsvariablen für den web
-Service im environment
-Abschnitt definiert, und der mysql
-Service hat ebenfalls seine eigenen definierten Umgebungsvariablen.
graph TD
A[Docker Compose] --> B[Environment Variables]
B --> C[Docker Containers]
C --> D[Applications]
Indem Sie Umgebungsvariablen auf diese Weise verwalten, können Sie Ihre Anwendung einfach skalieren, Dienste austauschen und eine konsistente Konfiguration in verschiedenen Umgebungen aufrechterhalten.