Docker & Docker Compose unter Linux installieren
Docker ist die meistgenutzte Container-Plattform. Mit Docker lassen sich Anwendungen in isolierten Containern betreiben – unabhängig vom Host-System. In diesem Post installieren wir Docker Engine und Docker Compose auf einem Debian/Ubuntu-System.
Was ist Docker?
Docker verpackt eine Anwendung zusammen mit allen Abhängigkeiten in ein sogenanntes Image. Aus diesem Image werden Container gestartet – leichtgewichtige, isolierte Prozesse, die sich das Kernel des Host-Systems teilen.
Der Vorteil gegenüber virtuellen Maschinen: Container starten in Sekunden und brauchen deutlich weniger Ressourcen.
Docker Engine installieren
Die einfachste Methode ist das offizielle Installationsskript von Docker:
curl -fsSL https://get.docker.com | sh
Das Skript erkennt automatisch die Distribution und installiert die passende Version.
Manuelle Installation (Debian/Ubuntu)
Falls du das Skript nicht verwenden möchtest, geht es auch manuell:
# Alte Versionen entfernen
sudo apt remove docker docker-engine docker.io containerd runc
# Abhängigkeiten installieren
sudo apt update
sudo apt install -y ca-certificates curl gnupg
# Docker GPG-Key hinzufügen
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Repository hinzufügen
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Docker installieren
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Docker ohne sudo nutzen
Standardmäßig muss Docker mit sudo aufgerufen werden. Um das zu umgehen, füge deinen Benutzer zur docker-Gruppe hinzu:
sudo usermod -aG docker $USER
Danach einmal aus- und wieder einloggen (oder newgrp docker ausführen). Ab jetzt funktioniert docker ohne sudo.
Docker testen
docker run hello-world
Du solltest eine Erfolgsmeldung sehen. Damit läuft Docker korrekt.
Docker Compose installieren
Docker Compose ist seit Docker v2 als Plugin verfügbar und wird automatisch mitinstalliert, wenn du der Anleitung oben gefolgt bist. Überprüfen:
docker compose version
Falls du eine ältere Installation hast und das Plugin fehlt:
sudo apt install docker-compose-plugin
Hinweis: Das alte
docker-compose(mit Bindestrich, Python-basiert) ist veraltet. Nutze immerdocker compose(ohne Bindestrich).
Erster Docker Compose Stack
Erstelle eine Datei docker-compose.yml:
services:
nginx:
image: nginx:alpine
ports:
- "8080:80"
restart: unless-stopped
Stack starten:
docker compose up -d
Nginx ist jetzt unter http://localhost:8080 erreichbar.
Wichtige Compose-Befehle
| Befehl | Beschreibung |
|--------|--------------|
| docker compose up -d | Stack im Hintergrund starten |
| docker compose down | Stack stoppen und Container entfernen |
| docker compose logs -f | Logs live verfolgen |
| docker compose pull | Images aktualisieren |
| docker compose ps | Status der Container anzeigen |
Docker automatisch starten
Docker läuft nach der Installation bereits als systemd-Dienst und startet automatisch beim Booten. Prüfen:
sudo systemctl status docker
Fazit
Docker und Docker Compose sind in wenigen Minuten installiert. Mit Docker Compose lassen sich auch komplexe Multi-Container-Setups sauber in einer einzigen YAML-Datei definieren. In weiteren Posts zeige ich, wie man Pi-hole, AdGuard und andere Dienste als Docker Container betreibt.