Docker-Compose: Einfache Anwendung mit “Hello World”

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 0Code-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.

Schreibe einen Kommentar