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

BefehlWirkung
docker compose up -dContainer erstellen und im Hintergrund starten
docker compose psStatus der Container anzeigen
docker compose logs -fLogs live verfolgen
docker compose pullneue Images laden
docker compose downContainer 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?.

War diese Antwort hilfreich? 0 Benutzer fanden dies hilfreich (0 Stimmen)