0Pricing
Docker & DevOps Fundamentals · Lektion

Eine Compose-Datei schreiben

Lernen Sie die YAML-Syntax von `docker-compose.yml` kennen, um Services, Netzwerke und Volumes zu definieren.

Eine Compose-Datei schreiben ist eine kostenlose Docker & DevOps Fundamentals-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Docker & DevOps Fundamentals-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Docker & DevOps Fundamentals-Kurs umfasst insgesamt 4 Lektionen.

Compose-Datei: Der Bauplan

Willkommen beim Schreiben von Docker-Compose-Dateien! Die Datei docker-compose.yml ist Ihr Bauplan zum Definieren und Ausführen von Docker-Anwendungen mit mehreren Containern.

Mit der YAML-Syntax konfigurieren Sie die Services, Netzwerke und Volumes Ihrer Anwendung in einer einzigen Datei.

Eine Compose-Datei schreiben — Illustration 1

YAML: Eine kurze Auffrischung

Docker-Compose-Dateien werden in YAML geschrieben (YAML Ain't Markup Language). YAML ist ein für Menschen gut lesbarer Standard zur Serialisierung von Daten.

  • Schlüssel-Wert-Paare: key: value
  • Listen: Elemente beginnen mit einem Bindestrich (- item)
  • Einrückung: Entscheidend für die Definition von Struktur und Hierarchie. Verwenden Sie Leerzeichen, keine Tabulatoren!

Der Schlüssel `version`

Jede docker-compose.yml-Datei beginnt mit einem Schlüssel version. Dieser gibt die Version des Compose-Dateiformats an und hilft Docker Compose dabei, Ihre Datei richtig zu interpretieren.

Für die meisten modernen Anwendungen wird '3.8' oder eine ähnliche '3.x'-Version empfohlen.

version: '3.8'

`services` definieren

Im Abschnitt services definieren Sie die einzelnen Container (Services), aus denen Ihre Anwendung besteht. Jeder Service stellt eine Komponente dar, beispielsweise einen Webserver oder eine Datenbank.

Unter services listen Sie jeden Service unter einem von Ihnen gewählten Namen auf.

version: '3.8'
services:
  web:
    # Service configuration goes here
  database:
    # Another service's configuration

Service-`image` und -`ports`

Innerhalb einer Servicedefinition gibt image an, welches Docker-Image verwendet werden soll (z. B. nginx:latest). Der Schlüssel ports ordnet Container-Ports den Ports des Hosts zu und ermöglicht so den Zugriff von außen.

  • "80:80" ordnet den Host-Port 80 dem Container-Port 80 zu.
version: '3.8'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

Service-`volumes`

Mit dem Schlüssel volumes innerhalb eines Services können Sie Pfade von Ihrem Hostcomputer in den Container einbinden oder benannte Volumes für die persistente Speicherung verwenden.

In diesem Beispiel wird das lokale Verzeichnis ./app in /usr/src/app innerhalb des Containers eingebunden.

version: '3.8'
services:
  app:
    image: my-node-app
    volumes:
      - ./app:/usr/src/app

Variablen der Service-`environment`

Verwenden Sie den Schlüssel environment, um Umgebungsvariablen an die Container Ihres Services zu übergeben. Das ist entscheidend für Konfigurationen, die sich zwischen Umgebungen ändern können, beispielsweise Datenbankverbindungszeichenfolgen.

Variablen können als Schlüssel-Wert-Paare oder im Listenformat angegeben werden.

version: '3.8'
services:
  backend:
    image: my-api
    environment:
      - DATABASE_URL=postgres://user:pass@host:5432/db
      - NODE_ENV=development

`networks` und `volumes` auf oberster Ebene

Neben ihrer Definition innerhalb von Services können Sie benutzerdefinierte benannte Volumes und Netzwerke auch auf oberster Ebene Ihrer Datei docker-compose.yml deklarieren.

Dadurch lassen sich Definitionen für die Datenpersistenz und die Kommunikation zwischen Containern übersichtlicher und wiederverwendbar gestalten.

version: '3.8'
services:
  # ... service definitions ...

networks:
  my_app_network:
    # custom network configuration

volumes:
  db_data:
    # named volume configuration

Alles zusammenführen

Hier sehen Sie ein kleines Beispiel, das die bisher behandelten Inhalte kombiniert. Es definiert einen Webservice und einen Datenbankservice und verwendet dabei ein Image, Ports und ein benanntes Volume.

Beachten Sie, wie die Einrückung die Struktur erzeugt.

version: '3.8'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - web_content:/usr/share/nginx/html
  db:
    image: postgres:13
    environment:
      - POSTGRES_DB=mydb
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=secret

volumes:
  web_content:
  db_data:

Compose-Datei überprüfen

Welcher der folgenden YAML-Ausschnitte definiert korrekt einen Docker-Compose-Service mit dem Namen 'api', der das Image 'myapi:1.0' verwendet und den Container-Port 3000 auf den Host-Port 8080 abbildet?

Zusammenfassung: Grundlagen der Compose-Datei

Sehr gut! Sie haben die Grundlagen zum Schreiben einer docker-compose.yml-Datei gelernt.

  • Sie beginnt mit einer version.
  • services definieren die Komponenten Ihrer Anwendung.
  • Jeder Service verwendet ein image, kann ports veröffentlichen, volumes zur Persistenz verwenden und environment-Variablen festlegen.
  • networks und volumes auf oberster Ebene ermöglichen eine erweiterte Konfiguration.

Die Beherrschung dieser YAML-Struktur ist entscheidend für die Orchestrierung von Anwendungen mit mehreren Containern!

Häufig gestellte Fragen

Ist die Lektion „Eine Compose-Datei schreiben“ kostenlos?

Ja — der vollständige Text von „Eine Compose-Datei schreiben“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Docker & DevOps Fundamentals-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Docker & DevOps Fundamentals-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Eine Compose-Datei schreiben“?

Lernen Sie die YAML-Syntax von `docker-compose.yml` kennen, um Services, Netzwerke und Volumes zu definieren. Du übst Docker & DevOps Fundamentals mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Docker & DevOps Fundamentals zu starten?

Keine Vorkenntnisse erforderlich. Docker & DevOps Fundamentals auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Eine Compose-Datei schreiben“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Docker & DevOps Fundamentals-Lektion Code schreiben und ausführen?

Ja. Jede Docker & DevOps Fundamentals-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Was ist Docker Compose?
  2. Eine Compose-Datei schreiben
  3. Anwendungen mit mehreren Services bereitstellen
  4. Umgebungsvariablen und .env-Dateien
← Zurück zu Docker & DevOps Fundamentals