
Einleitung
Wer zum ersten Mal von Docker oder Docker Compose hört, denkt vielleicht an komplizierte Technik. Dabei ist die Grundidee erstaunlich einfach: Anwendungen sollen sauber, schnell und zuverlässig laufen — egal auf welchem System. In diesem Zusammenhang fällt hin und wieder auch das Wort Containerisierung.
Docker kann man sich wie eine standardisierte Verpackung für Software vorstellen. Eine Anwendung wird so verpackt, dass sie überall in derselben Umgebung läuft. Das reduziert typische Probleme wie:
- „Bei mir funktioniert es, aber auf einem anderen Server nicht.“
- fehlende Abhängigkeiten
- unterschiedliche Softwarestände
- aufwendige manuelle Installationen
Kurz gesagt: Docker macht Anwendungen portabler und berechenbarer.
Gerade für kleine Unternehmen oder Selbstständige kann das sehr spannend sein. Denn viele moderne Lösungen bestehen nicht nur aus einem Programm, sondern aus mehreren Bausteinen. Zum Beispiel aus einer Webanwendung, einer Datenbank und vielleicht noch einem Verwaltungswerkzeug. Genau hier kommt Docker Compose ins Spiel.
Docker Compose
Docker Compose hilft dabei, mehrere Docker-Container gemeinsam zu verwalten.
Statt jeden einzelnen Baustein mühsam per Hand zu starten, wird alles in einer einzigen Datei beschrieben. In dieser Datei steht dann zum Beispiel:
- welche Dienste gebraucht werden,
- welches Image verwendet werden soll,
- welche Ports erreichbar sein sollen,
- welche Daten dauerhaft gespeichert werden,
- welche Dienste voneinander abhängen,
- welche Netzwerke genutzt werden sollen,
- etc..
Mit einem einzigen Befehl können dann komplette Anwendungen gestartet werden. Wenn eine Umgebung einmal sauber definiert ist, kann sie schnell neu gestartet oder auf andere Server umgezogen, leicht gesichert und von verschiedenen Menschen identisch genutzt werden.
Ein Beispiel
… wie das für eine kleine Webanwendung mit einer Datenbank aussehen könnte:
services:
web:
image: nginx
ports:
- "8080:80"
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: meinpasswort
Was passiert hier? web startet einen Webserver, db startet eine Datenbank. Der Webserver wäre hier über Port 8080 erreichbar. Beide Dienste werden gemeinsam verwaltet. Der Start erfolgt dann mit:
docker compose up -d
Und im Alltag?
Docker Compose ist besonders nützlich, wenn Anwendungen aus mehreren Teilen bestehen. Typische Einsatzbereiche sind: Testumgebungen, interne Tools, Webanwendungen, Datenbanken, kleine Self-Hosting-Lösungen oder standardisierte Entwicklungsumgebungen. Auch Updates und Änderungen lassen sich strukturierter umsetzen, weil die Konfiguration zentral an einem Ort liegt.
Gibt es auch Grenzen?
Ja, durchaus. Docker Compose ist ideal für einzelne Server oder kleinere Umgebungen. Wenn Anwendungen sehr groß werden, hochverfügbar laufen müssen oder automatisch über viele Server verteilt werden sollen, kommen dann eher andere Werkzeuge ins Spiel.
Installation
Wir setzen das also auf einem VPS mit Debian 12 (bookworm) um. Verbindung zum Server (bspw. VPS) herstellen (ssh root@server-ip -p22):
sudo apt update
sudo apt install -y docker.io docker-compose-plugin
sudo systemctl enable --now docker
docker --version
docker compose version
Testen:
docker run hello-world
Hat alles geklappt, sollte sowas in der Konsole zurückkommen:
root@my-vps:~# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
4f55086f7dd0: Pull complete
Digest: sha256:f9078146db2e05e794366b1bfe584a14ea6317f44027d10ef7dad65279026885
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
root@my-vps:~#
Fazit
Für viele praktische Alltagsfälle kann Docker Compose ein sehr guter Weg sein: leistungsfähig, übersichtlich und gut beherrschbar.
Docker Compose ist kein Hexenwerk, sondern ein sehr nützliches Werkzeug, um mehrere zusammengehörige Anwendungen einfach zu verwalten.
Zusammenfassend lässt sich schreiben: Statt viele Einzelschritte manuell auszuführen, wird die komplette Anwendung in einer Datei beschrieben und mit einem Befehl gestartet. Das spart Zeit, reduziert Fehler und macht IT-Systeme deutlich besser nachvollziehbar.
Sicherheit
Es gibt viele Anbieter von Docker-Containern. Nicht alle sind seriös. Es gilt in speziellen Fällen sehr genau zu schauen, ob und welche Container man von welchen Anbietern nutzt. Fremder Code auf dem eigenen Server stellt immer ein potentielles Risiko dar. Also, Obacht geben und vorab recherchieren.
Haftunsgausschluss & Risikohinweis
Alle Anleitungen auf diesem Blog werden mit großer Sorgfalt erstellt. Das Nachmachen erfolgt jedoch immer auf eigene Gefahr. pc-fee.com übernimmt keine Garantie für die Richtigkeit und Vollständigkeit oder Haftung für entstandene Schäden. Backups vor geplanten Änderungen sind Pflicht.

