Docker auf Ubuntu installieren
Auf dieser Seite
Docker führt Anwendungen in Containern aus: Jeder bringt alles mit, was er braucht, und läuft deshalb auf deinem Laptop genauso wie auf einem Server. Websites, Datenbanken, Bots und Gameserver lassen sich alle mit einem Befehl oder einer Compose-Datei starten.
Diese Anleitung installiert Docker Engine und Docker Compose auf Ubuntu 24.04 oder 22.04 aus dem offiziellen Docker-Repository und behandelt dann die Einstellungen, die auf einem echten Server zählen: Rechte, Logs und die Firewall.
Bevor du loslegst
- Ein unterstütztes Ubuntu: Docker unterstützt die 64-Bit-Versionen von Ubuntu 26.04, 24.04 und 22.04 LTS. Prüfe deine mit
cat /etc/os-release. - Ein KVM-Server, kein Container: Docker braucht eigene Kernel-Funktionen. Es läuft auf jedem KVM-VPS, oft aber nicht auf containerbasierten Paketen (OpenVZ oder LXC).
- Root oder ein Benutzer mit sudo. Die Befehle unten nutzen
sudo; bist du als root angemeldet, kannst du es weglassen.
Verzichte auf Servern auf das Paket docker.io aus Ubuntus eigenem Repository und auf die Snap-Version: Das Docker-Repository bekommt neue Versionen zuerst, und genau das nutzt auch Dockers eigene Dokumentation.
Docker braucht eine echte virtuelle Maschine: HytHost KVM-VPS-Pakete mit Ubuntu und vollem Root-Zugriff gibt es ab €2.92/Monat.
VPS-Pakete ansehenSchritt 1: Konfliktpakete entfernen
Hast du Docker früher aus einer anderen Quelle installiert, entferne diese Pakete zuerst. Auf einem frischen Server meldet apt einfach, dass keines installiert ist:
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1)
Images und Volumes in /var/lib/docker/ werden dabei nicht gelöscht.
Schritt 2: Das Docker-Repository hinzufügen
Diese Befehle aus der Docker-Dokumentation fügen Dockers Signaturschlüssel und sein apt-Repository für deine Ubuntu-Version hinzu:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
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
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
Schritt 3: Docker und Compose installieren
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Damit installierst du Docker Engine, das Kommandozeilen-Tool, den Buildx-Builder und das Compose-Plugin. Prüfe, ob alles funktioniert:
sudo docker run hello-world docker compose version
Der erste Befehl lädt ein winziges Test-Image herunter und gibt eine Willkommensnachricht aus. Unter Ubuntu startet Docker automatisch beim Booten, du musst also nichts aktivieren.
Compose ist der Befehl docker compose, mit Leerzeichen. Das alte docker-compose mit Bindestrich ist die eingestellte erste Version; Anleitungen, die es noch verwenden, funktionieren auch mit dem neuen Befehl.
Schritt 4: Rechte und Log-Rotation
docker ohne sudo ausführen. Füge deinen Benutzer der Gruppe docker hinzu, dann ab- und wieder anmelden:
sudo usermod -aG docker $USER
Beachte, dass Docker selbst warnt: Diese Gruppe verleiht Rechte auf Root-Niveau – wer drin ist, kann den ganzen Server steuern. Füge nur Benutzer hinzu, denen du auch Root geben würdest.
Log-Größe begrenzen. Standardmäßig wachsen Container-Logs unbegrenzt und können die Festplatte füllen. Lege /etc/docker/daemon.json an:
{
"log-driver": "json-file",
"log-opts": { "max-size": "10m", "max-file": "3" }
}
Dann sudo systemctl restart docker. Das Limit gilt für Container, die nach der Änderung erstellt werden – erstelle bestehende also neu.
Eine erste Compose-Datei
Compose beschreibt deine Container in einer einzigen Datei. Lege einen Ordner mit einer compose.yaml an:
services:
web:
image: nginx:stable
ports:
- "127.0.0.1:8080:80"
restart: unless-stopped
Starte ihn mit docker compose up -d, prüfe ihn mit docker compose ps und lies seine Logs mit docker compose logs. restart: unless-stopped holt den Container nach einem Absturz oder Neustart zurück. Der Port ist absichtlich an 127.0.0.1 gebunden, wie der nächste Abschnitt erklärt.
Docker und ufw: die Firewall-Falle
Hier tappt fast jeder hinein. Wenn du einen Port veröffentlichst, etwa -p 8080:80, fügt Docker eigene Firewall-Regeln hinzu, die vor denen von ufw greifen. Der Port ist aus dem Internet erreichbar, selbst wenn ufw ihn als geschlossen anzeigt.
- Binde Ports an localhost, wenn nur der Server selbst sie braucht, etwa eine Datenbank oder eine App hinter einem Reverse Proxy:
127.0.0.1:8080:80. - Veröffentliche Datenbank-Ports gar nicht; lass Container stattdessen über ein Docker-Netzwerk miteinander sprechen.
- Zum Filtern nach Quelladresse füge Regeln zur iptables-Chain
DOCKER-USERhinzu, die Docker vor seinen eigenen prüft.
Dasselbe gilt für Gameserver, die in Docker laufen; siehe VPS für Gameserver einrichten.
Docker auf einem HytHost VPS
HytHost VPS-Pakete laufen auf KVM, also hat jeder VPS seinen eigenen Kernel und Docker läuft ohne Einschränkungen. Wähle bei der Bestellung Ubuntu 24.04 oder 22.04, verbinde dich per SSH und folge den Schritten oben. Du bekommst vollen Root-Zugriff, SSD-Speicher und DDoS-Schutz und kannst später auf ein größeres Paket upgraden, wenn deine Container wachsen.
Häufige Fragen
Docker unterstützt die 64-Bit-Versionen von Ubuntu 26.04, 24.04 und 22.04 LTS. Andere Ubuntu-basierte Systeme wie Linux Mint werden offiziell nicht unterstützt.
Nicht auf einem Produktivserver. Laut Docker ist das Convenience-Skript für Entwicklungsumgebungen gedacht und für die Produktion nicht empfohlen; außerdem kann es auf eine neue Hauptversion springen. Nutze stattdessen die Repository-Methode.
docker-compose mit Bindestrich ist die alte, eingestellte Version. Heute ist Compose ein Docker-Plugin, das als docker compose genutzt und mit dem Paket docker-compose-plugin installiert wird.
Von Docker veröffentlichte Ports umgehen ufw. Binde den Port an 127.0.0.1, wenn er lokal bleiben soll, oder filtere ihn in der Chain DOCKER-USER.
Auf einem KVM-VPS ja. Containerbasierte VPS-Pakete wie OpenVZ können Docker oft nicht ausführen oder brauchen spezielle Einstellungen vom Anbieter.
Betreibe deine Container auf einem VPS
HytHost KVM-VPS-Pakete betreiben Docker ohne Einschränkungen, mit vollem Root-Zugriff und Ubuntu 24.04 – ab €2.92/Monat.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursWar diese Anleitung hilfreich?