Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Umgebungsvariablen und Konfiguration in Compose | Arbeiten mit Docker Compose
Docker Grundlagen

bookUmgebungsvariablen und Konfiguration in Compose

Verwendung von Umgebungsvariablen in docker-compose.yml

Umgebungsvariablen ermöglichen flexible und wiederverwendbare Docker-Compose-Konfigurationen. Durch das Definieren von Variablen vermeiden Sie das Festschreiben von Werten wie Ports, Image-Tags oder Zugangsdaten direkt in Ihrer docker-compose.yml-Datei. Stattdessen verweisen Sie auf diese Variablen, und Docker Compose ersetzt deren Werte zur Laufzeit. Dieser Ansatz ist besonders nützlich, wenn dieselbe Anwendung in verschiedenen Umgebungen wie Entwicklung, Test oder Produktion bereitgestellt wird.

Um Umgebungsvariablen in Ihrer Compose-Datei zu definieren und zu verwenden, gehen Sie wie folgt vor:

  • Speichern Sie Umgebungsvariablen in einer .env-Datei im selben Verzeichnis wie Ihre docker-compose.yml;
  • Verweisen Sie in Ihrer Compose-Datei mit der Syntax ${VARIABLE_NAME} auf die Variablen;
  • Überschreiben Sie Variablen, indem Sie sie direkt in der Shell oder als Teil Ihrer CI/CD-Pipeline übergeben.

Angenommen, Sie möchten das Datenbankpasswort und den Anwendungsport über Umgebungsvariablen konfigurieren. Erstellen Sie eine .env-Datei mit folgendem Inhalt:

DB_PASSWORD=supersecret
APP_PORT=8080

In Ihrer docker-compose.yml referenzieren Sie diese Variablen wie folgt:

version: "3.8"
services:
  web:
    image: myapp:latest
    ports:
      - "${APP_PORT}:80"
    environment:
      - DB_PASSWORD=${DB_PASSWORD}

Wenn Sie docker-compose up ausführen, ersetzt Docker Compose die Werte aus der .env-Datei in der Konfiguration. Diese Methode hält sensible oder umgebungsspezifische Daten aus Ihrer Compose-Datei heraus und macht Ihr Setup portabler.

Verwaltung von Geheimnissen und sensiblen Daten in Compose-Dateien

Obwohl Umgebungsvariablen praktisch sind, sind sie nicht immer die sicherste Methode, um sensible Informationen wie Passwörter, API-Schlüssel oder Zertifikate zu verwalten. Umgebungsvariablen können unter Umständen über Protokolle, Prozesslisten oder Versionskontrolle offengelegt werden, wenn sie nicht sorgfältig behandelt werden. Zur Verbesserung der Sicherheit können Sie verschiedene Techniken zur Verwaltung von Geheimnissen in Docker Compose nutzen:

  • Speichern Sie sensible Werte in einer separaten .env-Datei und stellen Sie sicher, dass diese Datei mit .gitignore von der Versionskontrolle ausgeschlossen wird;
  • Verwenden Sie die Unterstützung von Docker Compose für Docker-Secrets, wenn Sie mit Docker Swarm bereitstellen. Damit können Sie Geheimnisse sicher als Dateien innerhalb von Containern bereitstellen;
  • Referenzieren Sie Geheimnisse als Dateien auf dem Host und binden Sie sie mit dem Schlüssel volumes in Ihrer Compose-Datei in den Container ein.

Beispiel: Um ein Datenbankpasswort nicht offenzulegen, speichern Sie es in einer Datei namens db_password.txt und binden Sie diese in den Container ein:

services:
  db:
    image: postgres:latest
    volumes:
      - ./db_password.txt:/run/secrets/db_password
    environment:
      - POSTGRES_PASSWORD_FILE=/run/secrets/db_password

Dieser Ansatz hält das eigentliche Geheimnis aus der Compose-Datei und den Umgebungsvariablen heraus und reduziert das Risiko einer versehentlichen Offenlegung. Überprüfen Sie stets Ihre Konfiguration und Arbeitsabläufe, um sicherzustellen, dass Geheimnisse geschützt sind, und geben Sie niemals sensible Daten in die Versionskontrolle.

question mark

Was ist der Hauptvorteil der Verwendung von Umgebungsvariablen in einer Docker-Compose-Datei?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 4

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Awesome!

Completion rate improved to 7.14

bookUmgebungsvariablen und Konfiguration in Compose

Swipe um das Menü anzuzeigen

Verwendung von Umgebungsvariablen in docker-compose.yml

Umgebungsvariablen ermöglichen flexible und wiederverwendbare Docker-Compose-Konfigurationen. Durch das Definieren von Variablen vermeiden Sie das Festschreiben von Werten wie Ports, Image-Tags oder Zugangsdaten direkt in Ihrer docker-compose.yml-Datei. Stattdessen verweisen Sie auf diese Variablen, und Docker Compose ersetzt deren Werte zur Laufzeit. Dieser Ansatz ist besonders nützlich, wenn dieselbe Anwendung in verschiedenen Umgebungen wie Entwicklung, Test oder Produktion bereitgestellt wird.

Um Umgebungsvariablen in Ihrer Compose-Datei zu definieren und zu verwenden, gehen Sie wie folgt vor:

  • Speichern Sie Umgebungsvariablen in einer .env-Datei im selben Verzeichnis wie Ihre docker-compose.yml;
  • Verweisen Sie in Ihrer Compose-Datei mit der Syntax ${VARIABLE_NAME} auf die Variablen;
  • Überschreiben Sie Variablen, indem Sie sie direkt in der Shell oder als Teil Ihrer CI/CD-Pipeline übergeben.

Angenommen, Sie möchten das Datenbankpasswort und den Anwendungsport über Umgebungsvariablen konfigurieren. Erstellen Sie eine .env-Datei mit folgendem Inhalt:

DB_PASSWORD=supersecret
APP_PORT=8080

In Ihrer docker-compose.yml referenzieren Sie diese Variablen wie folgt:

version: "3.8"
services:
  web:
    image: myapp:latest
    ports:
      - "${APP_PORT}:80"
    environment:
      - DB_PASSWORD=${DB_PASSWORD}

Wenn Sie docker-compose up ausführen, ersetzt Docker Compose die Werte aus der .env-Datei in der Konfiguration. Diese Methode hält sensible oder umgebungsspezifische Daten aus Ihrer Compose-Datei heraus und macht Ihr Setup portabler.

Verwaltung von Geheimnissen und sensiblen Daten in Compose-Dateien

Obwohl Umgebungsvariablen praktisch sind, sind sie nicht immer die sicherste Methode, um sensible Informationen wie Passwörter, API-Schlüssel oder Zertifikate zu verwalten. Umgebungsvariablen können unter Umständen über Protokolle, Prozesslisten oder Versionskontrolle offengelegt werden, wenn sie nicht sorgfältig behandelt werden. Zur Verbesserung der Sicherheit können Sie verschiedene Techniken zur Verwaltung von Geheimnissen in Docker Compose nutzen:

  • Speichern Sie sensible Werte in einer separaten .env-Datei und stellen Sie sicher, dass diese Datei mit .gitignore von der Versionskontrolle ausgeschlossen wird;
  • Verwenden Sie die Unterstützung von Docker Compose für Docker-Secrets, wenn Sie mit Docker Swarm bereitstellen. Damit können Sie Geheimnisse sicher als Dateien innerhalb von Containern bereitstellen;
  • Referenzieren Sie Geheimnisse als Dateien auf dem Host und binden Sie sie mit dem Schlüssel volumes in Ihrer Compose-Datei in den Container ein.

Beispiel: Um ein Datenbankpasswort nicht offenzulegen, speichern Sie es in einer Datei namens db_password.txt und binden Sie diese in den Container ein:

services:
  db:
    image: postgres:latest
    volumes:
      - ./db_password.txt:/run/secrets/db_password
    environment:
      - POSTGRES_PASSWORD_FILE=/run/secrets/db_password

Dieser Ansatz hält das eigentliche Geheimnis aus der Compose-Datei und den Umgebungsvariablen heraus und reduziert das Risiko einer versehentlichen Offenlegung. Überprüfen Sie stets Ihre Konfiguration und Arbeitsabläufe, um sicherzustellen, dass Geheimnisse geschützt sind, und geben Sie niemals sensible Daten in die Versionskontrolle.

question mark

Was ist der Hauptvorteil der Verwendung von Umgebungsvariablen in einer Docker-Compose-Datei?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 4
some-alt