Diese Anleitung zeigt Ihnen, wie Sie Docker Engine und das Compose-Plugin aus dem offiziellen Docker-Repository auf Debian 12/13 oder Ubuntu 22.04/24.04 installieren. Die Pakete aus dem offiziellen Repository sind aktueller als die Pakete der Distribution und enthalten Compose direkt als docker compose. Sie benötigen einen Server mit Root- oder sudo-Zugang.
Schritt 1: Alte Pakete entfernen
Falls bereits Docker-Pakete aus den Distributions-Quellen installiert sind, entfernen Sie diese zuerst. Ihre Daten unter /var/lib/docker bleiben dabei erhalten.
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do
sudo apt remove -y $pkg 2>/dev/null
done
Schritt 2: Repository einrichten
Installieren Sie die benötigten Hilfsprogramme und den Signaturschlüssel von Docker:
sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
Für Debian
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/debian $(. /etc/os-release && echo $VERSION_CODENAME) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Für Ubuntu
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Schritt 3: Docker installieren
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Der Dienst wird automatisch gestartet und beim Booten aktiviert. Prüfen Sie den Status:
sudo systemctl status docker --no-pager
Schritt 4: Installation testen
sudo docker run --rm hello-world
docker compose version
Der erste Befehl lädt ein kleines Test-Image und gibt eine Begrüßung aus. Der zweite zeigt die installierte Compose-Version.
Schritt 5: Docker ohne sudo nutzen (optional)
Damit ein normaler Benutzer Docker verwenden kann, fügen Sie ihn der Gruppe docker hinzu:
sudo usermod -aG docker $USER
Melden Sie sich danach ab und wieder an. Sicherheitshinweis: Mitglieder der Gruppe docker haben faktisch Root-Rechte auf dem Server. Fügen Sie nur vertrauenswürdige Benutzer hinzu.
Schritt 6: Log-Größe begrenzen
Standardmäßig wachsen Container-Logs unbegrenzt. Auf Servern mit wenig Speicherplatz kann das die Festplatte füllen. Legen Sie deshalb eine Begrenzung fest:
sudo tee /etc/docker/daemon.json > /dev/null <<'EOF'
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
EOF
sudo systemctl restart docker
Die Einstellung gilt für neu erstellte Container. Bestehende Container müssen neu erstellt werden, etwa mit docker compose up -d --force-recreate.
Erstes Compose-Projekt
Legen Sie für jedes Projekt ein eigenes Verzeichnis an:
mkdir -p ~/projekte/web && cd ~/projekte/web
cat > compose.yaml <<'EOF'
services:
web:
image: nginx:1.27
ports:
- "8080:80"
restart: unless-stopped
EOF
docker compose up -d
docker compose ps
Rufen Sie anschließend http://IHRE-SERVER-IP:8080 im Browser auf. Die Standardseite von nginx sollte erscheinen.
Die wichtigsten Compose-Befehle
| Befehl | Wirkung |
|---|---|
docker compose up -d | Container erstellen und im Hintergrund starten |
docker compose ps | Status der Container anzeigen |
docker compose logs -f | Logs live verfolgen |
docker compose pull | neue Images laden |
docker compose down | Container stoppen und entfernen (Volumes bleiben) |
Updates
Docker selbst aktualisieren Sie wie jedes andere Paket mit sudo apt update && sudo apt upgrade. Ihre Container werden danach automatisch neu gestartet, sofern sie mit restart: unless-stopped angelegt wurden. Die Anwendungen in den Containern aktualisieren Sie mit:
docker compose pull
docker compose up -d
docker image prune -f
Fehlerbehebung
„permission denied while trying to connect to the Docker daemon socket“
Der Benutzer ist nicht in der Gruppe docker oder hat sich nach dem Hinzufügen nicht neu angemeldet. Verwenden Sie sudo oder melden Sie sich neu an.
„docker-compose: command not found“
Das alte Programm docker-compose mit Bindestrich wird nicht mehr installiert. Verwenden Sie docker compose mit Leerzeichen.
Port bereits belegt
Mit sudo ss -tulpn | grep :8080 sehen Sie, welcher Prozess den Port verwendet. Wählen Sie einen anderen Port oder beenden Sie den Prozess.
Einen passenden Server für Ihre Container finden Sie bei unseren vServern. Grundlagen zu Images, Containern und Volumes erklärt unser Artikel Was ist Docker?.
