Letzte Woche hast du bereits die Grundlagen von Docker-Containern letzte Woche kennengelernt – also wie du einzelne Anwendungen isoliert in Containern laufen lässt. Heute gehen wir einen Schritt weiter: Ich zeige dir, wie du mit Docker-Compose mehrere Container zu einer kleinen, funktionierenden Anwendung kombinierst. Dafür starten wir ganz entspannt mit einem klassischen „Hello World“-Beispiel. So bekommst du ein Gefühl dafür, wie Docker-Compose funktioniert und warum es dir in der Praxis einiges an Arbeit abnimmt.
1. Was ist Docker-Compose?
Docker-Compose ist ein praktisches Werkzeug, wenn du mehrere Container gleichzeitig nutzen möchtest – also zum Beispiel eine Anwendung, die aus einer Datenbank, einem Webserver und einem Backend-Service besteht. Statt jeden dieser Container mühsam einzeln zu starten und zu konfigurieren, kannst du mit Docker-Compose alles bequem in einer Datei regeln. In der sogenannten docker-compose.yml
legst du fest, welche Container gebraucht werden, wie sie miteinander kommunizieren sollen und welche Einstellungen sie benötigen. Mit nur einem einzigen Befehl (docker-compose up
) wird dann die komplette Umgebung auf einmal gestartet – übersichtlich, wiederholbar und ohne Chaos.
2. Voraussetzungen
• Installiertes Docker und Docker-Compose: Stelle sicher, dass Docker und Docker-Compose auf deinem System installiert sind. Falls nicht, findest du in meinem Artikel Docker und Docker-Compose installieren und starten eine Anleitung.
3. Ein einfaches Docker-Compose-Projekt erstellen
3.1 Projektverzeichnis anlegen
Erstelle ein neues Verzeichnis für dein Projekt und wechsle in dieses Verzeichnis:
mkdir hello-world-compose
cd hello-world-compose
3.2 docker-compose.yml-Datei erstellen
Erstelle eine Datei namens docker-compose.yml mit folgendem Inhalt:
services:
hello_world:
image: hello-world
Erläuterungen:
- services: Hier legst du fest, welche Container zu deiner Anwendung gehören.
- hello_world: Das ist der Name deines Dienstes – also eines einzelnen Containers.
- image: hello-world: In diesem Fall nutzt du das offizielle „hello-world“-Image von Docker Hub.
4. Anwendung starten
Starte die Anwendung mit folgendem Befehl:
docker-compose up
Docker-Compose lädt das hello-world-Image (falls nicht bereits vorhanden) und startet den Container. Du solltest eine Ausgabe ähnlich der folgenden sehen:
Creating network "hello-world-compose_default" with the default driver
Creating hello-world-compose_hello_world_1 ... done
Attaching to hello-world-compose_hello_world_1
hello_world_1 |
hello_world_1 | Hello from Docker!
...
hello_world_1 | For more examples and ideas, visit:
hello_world_1 | https://docs.docker.com/get-started/
hello_world_1 |
hello-world-compose_hello_world_1 exited with code 0
Code-Sprache: JavaScript (javascript)
Diese Meldung bestätigt, dass der Container erfolgreich gestartet und ausgeführt wurde.
5. Container verwalten
Um den Status der Container zu überprüfen, kannst du folgende Befehle verwenden:
• Laufende Container anzeigen:
docker-compose ps
• Logs der Container anzeigen:
docker-compose logs
6. Anwendung stoppen und Ressourcen bereinigen
Um die Anwendung zu stoppen und die erstellten Ressourcen zu entfernen, verwende:
docker-compose down
Dieser Befehl stoppt die Container und entfernt die Netzwerke, die von Docker-Compose erstellt wurden.
Mit diesem einfachen Beispiel hast du die Grundlagen von Docker-Compose kennengelernt. Du kannst nun komplexere Anwendungen definieren, indem du mehrere Dienste in der docker-compose.yml-Datei hinzufügst. In zukünftigen Artikeln werde ich auf fortgeschrittene Themen eingehen, wie das Orchestrieren mehrerer Container und die Verwendung von Volumes und Netzwerken in Docker-Compose.