HELPER VPS

Docker auf dem VPS installieren: Ubuntu, Debian, AlmaLinux und Compose

Mit dem offiziellen Docker-Repository erhalten Sie die neueste Docker Engine und das Compose-Plugin, und spätere Updates erledigt ein einziges System-Update. Befehle je Betriebssystem und die Einstellungen, die Sie nach der Installation unbedingt vornehmen sollten, der Reihe nach.

Am schnellsten: Server mit dem Docker-Image erstellen

Erstellen Sie einen neuen Server, ist die Wahl von Docker in der Image-Liste am schnellsten. Er startet mit Docker Engine und Docker Compose auf Ubuntu 24.04 LTS, und direkt nach dem Login führen Sie docker compose up aus. App-Vorstellung und empfohlene Größen finden Sie auf der Seite Docker VPS.

Möchten Sie Docker auf einem bereits genutzten Server ergänzen oder ein anderes Betriebssystem wie Debian oder AlmaLinux nutzen, installieren Sie es selbst in der folgenden Reihenfolge. Alle Befehle gehen von einer Verbindung als root aus. Sind Sie als normaler Benutzer verbunden, stellen Sie den Befehlen sudo voran.

Was Sie vor der Installation prüfen

Docker läuft auf Servern jeder Größe. Für persönliche Projekte, die einige Container ausführen, ist der kleinste 12GB General Plan ausreichend; um eine Datenbank, einen Webserver und einen Cache gemeinsam auszuführen, bieten 24GB oder mehr genügend Platz. Wenn Sie häufig Images herunterladen und erstellen, macht ein NVMe VPS mit einer schnellen Festplatte einen spürbaren Unterschied.

Sind alte Docker-Pakete aus dem Betriebssystem-Repository installiert, entfernen Sie sie zuerst, damit sie sich nicht mit den offiziellen Paketen mischen. Nicht installierte Pakete werden übersprungen, Sie können den Befehl also unverändert ausführen.

Ubuntu, Debian
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do apt remove -y $pkg; done

Docker auf Ubuntu 24.04 installieren

Schritt 1. Repository-Schlüssel und Adresse hinzufügen

Ubuntu 24.04
apt update
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
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" > /etc/apt/sources.list.d/docker.list

Schritt 2. Docker Engine und Compose installieren

Ubuntu 24.04
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Nach der Installation startet der Docker-Dienst automatisch und auch nach einem Serverneustart wieder. Derselbe Befehl funktioniert unverändert auch unter Ubuntu 22.04 und 26.04. Den Versionsnamen in der Repository-Adresse liest er automatisch aus /etc/os-release.

Docker auf Debian 13 installieren

Debian folgt derselben Reihenfolge wie Ubuntu, nur die Repository-Adresse ändert sich zu linux/debian. Auch unter Debian 12 nutzen Sie dieselben Befehle.

Debian 13
apt update
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
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" > /etc/apt/sources.list.d/docker.list
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Docker auf AlmaLinux 10 installieren

AlmaLinux und Rocky Linux nutzen das RHEL-Repository von Docker. Damit es nicht mit dem vorinstallierten Podman kollidiert, räumen Sie zuerst auf und installieren dann. Dieselben Befehle gelten auch für AlmaLinux 9 und Rocky Linux 9 und 10.

AlmaLinux 10
dnf remove -y podman buildah runc
dnf -y install dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl enable --now docker

Werden Sie bei der ersten Installation gefragt, ob Sie den Signaturschlüssel des Repositorys akzeptieren, drücken Sie y. In der RHEL-Familie startet der Dienst nach der Installation nicht automatisch; mit systemctl enable --now docker in der letzten Zeile schalten Sie ihn jetzt ein und auch beim Booten.

Installation prüfen und erster Container

Starten Sie mit dem folgenden Befehl einmal einen Testcontainer. Erscheint ein Hinweis, der mit Hello from Docker beginnt, funktionieren Engine, Image-Download und Container-Ausführung. Mit --rm wird der Container nach dem Lauf sofort aufgeräumt.

Terminal
docker run --rm hello-world
docker compose version

Möchten Sie Docker auch als normaler Benutzer nutzen, fügen Sie diesen Benutzer der Gruppe docker hinzu und melden sich neu an. Die Gruppe docker hat dieselben Rechte wie root, nehmen Sie nur vertrauenswürdige Benutzer auf.

Terminal
usermod -aG docker benutzername

Dienste mit Docker Compose starten

Mit Compose halten Sie die Container-Konfiguration in einer einzigen YAML-Datei fest und starten alles mit einer Zeile. Auch beim Umzug oder auf einem neuen Server entsteht mit derselben Datei dieselbe Umgebung. Eine Datei, die etwa einen einzelnen Nginx-Webserver startet, sieht so aus.

Terminal
mkdir -p /opt/web && cd /opt/web
cat > compose.yaml <<'EOF'
services:
  web:
    image: nginx:stable
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html:ro
    restart: unless-stopped
EOF
docker compose up -d

Öffnen Sie im Browser http://YOUR_SERVER_IP, erscheint die Nginx-Seite. Legen Sie eine index.html in den Ordner html, wird diese Datei angezeigt. Häufige Befehle: Diese vier genügen.

  • docker compose ps: zeigt die laufenden Container und Ports.
  • docker compose logs -f: folgt den Logs in Echtzeit. Mit Strg+C verlassen.
  • docker compose pull && docker compose up -d: holt neue Images und stellt die Container auf die neue Version um.
  • docker compose down: stoppt und entfernt die Container. Daten in Volumes bleiben erhalten.

Mit restart: unless-stopped starten die Container nach einem Serverneustart automatisch wieder. Nur selbst gestoppte Container bleiben gestoppt.

Firewall und Freigabe von Ports

Docker trägt mit ports: veröffentlichte Ports direkt in die Firewall-Regeln (iptables) ein und öffnet sie. Daher sind auch Ports, die in ufw nicht erlaubt sind, von außen erreichbar, sobald sie unter ports: stehen. Datenbanken oder Verwaltungsoberflächen, die nicht nach außen sichtbar sein müssen, binden Sie wie folgt nur an 127.0.0.1, dann sind sie nur serverintern erreichbar.

compose.yaml
    ports:
      - "127.0.0.1:5432:5432"

Sauber ist es, bei Webdiensten nur die Ports 80 und 443 zu veröffentlichen und den Rest im selben Compose-Netzwerk über Dienstnamen anzusprechen. Für die Basis-Firewall des gesamten Servers folgen Sie der Anleitung zur Basis-Firewall und öffnen nur SSH, HTTP und HTTPS.

Logs und Festplatte verwalten

Container-Logs sammeln sich ohne Einstellung unbegrenzt an. Legen Sie in /etc/docker/daemon.json wie folgt den Log-Treiber local fest, werden Logs komprimiert und nur bis zu einer festen Größe aufbewahrt. Führen Sie nach dem Speichern systemctl restart docker aus, gilt es für neu erstellte Container.

/etc/docker/daemon.json
{
  "log-driver": "local"
}

Auch ungenutzte Images und gestoppte Container belegen Festplatte. Prüfen Sie die Belegung mit docker system df und räumen Sie aktuell ungenutzte Images mit docker image prune -a auf. Wachsen die Daten, können Sie auch ein NVMe-Block-Volume an den Server hängen und als Docker-Datenordner nutzen.

Daten schützen und nächste Schritte

Container lassen sich jederzeit löschen und neu erstellen, Daten in Volumes jedoch nicht. Sichern Sie Datenbanken regelmäßig als Dump-Datei und schützen Sie den gesamten Server zusätzlich mit automatischem Backup oder Snapshots. Wie das geht, steht in der Anleitung zu Backups und Snapshots.

Eine Compose-Datei, die WordPress mit Docker startet, finden Sie in der Anleitung zur WordPress-Installation. Möchten Sie mehrere Apps per Oberfläche bereitstellen und HTTPS-Zertifikate automatisch erhalten, erstellen Sie einen Server mit dem Image Coolify oder Dokploy. Passende Größen speziell für Container finden Sie beim Container VPS.

Passende weitere Anleitungen

Einstellungen, die Sie im Anschluss an diese Anleitung vornehmen sollten.

Alle Anleitungen ansehen