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.

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 configurationService-`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/appVariablen 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 configurationAlles 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. servicesdefinieren die Komponenten Ihrer Anwendung.- Jeder Service verwendet ein
image, kannportsveröffentlichen,volumeszur Persistenz verwenden undenvironment-Variablen festlegen. networksundvolumesauf 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
- Was ist Docker Compose?
- Eine Compose-Datei schreiben
- Anwendungen mit mehreren Services bereitstellen
- Umgebungsvariablen und .env-Dateien