Docker und Docker Compose auf Linux installieren – Anfänger Guide
Docker und Docker Compose auf Linux installieren – Anfänger Guide
Wenn Docker nach der Installation nicht läuft oder Permission-Fehler auftreten, ist die Installation über das offizielle Docker-Repository die sinnvollste Option, weil du damit die aktuelle Version mit allen Features erhältst und die docker-Gruppe korrekt konfiguriert wird.
Die 5 häufigsten Fehler
| Fehler | Ursache | Sofortlösung |
|---|---|---|
| Permission denied beim docker-Befehl | Benutzer nicht in docker-Gruppe | sudo usermod -aG docker $USER + Neuanmeldung |
| Alte Docker-Version aus apt/dnf | Standard-Repository verwendet | Offizielles Docker-Repository einrichten |
| docker-compose command not found | Alte Syntax oder Plugin fehlt | docker compose (mit Leerzeichen) verwenden |
| Container startet nach Reboot nicht | Restart-Policy fehlt | --restart unless-stopped bei docker run |
| GPG-Schlüssel Fehler | Veralteter Repository-Schlüssel | GPG-Schlüssel neu importieren |
Entscheidungsmatrix: Installationsmethode wählen
| Dein System | Nutzer-Anzahl | Empfohlene Methode | Grund |
|---|---|---|---|
| Ubuntu/Debian Desktop | 1-2 Nutzer | Offizielles Docker Repository | Aktuelle Version, alle Features |
| CentOS/RHEL/Fedora | 1-5 Nutzer | Offizielles Docker Repository | Bessere dnf-Integration |
| Raspberry Pi (ARM) | 1-3 Nutzer | Convenience Script | ARM-optimierte Builds |
| Proxmox LXC Container | Mehrere VMs | Privileged Container + Repository | Kernel-Sharing erforderlich |
| Enterprise/Production | 10+ Nutzer | Standard-Repository | Compliance-Anforderungen |
Setup-Szenarien
Setup Einsteiger: Home Server
Hardware: Mini-PC mit 8GB RAM, 256GB SSD
System: Ubuntu 22.04 LTS
Ziel: Nextcloud mit Docker Compose installieren + Plex Media Server installieren
Ergebnis: 5-10 Container, ca. 2GB RAM-Verbrauch, automatische Updates
Setup Fortgeschritten: Multi-Service Server
Hardware: NAS selber bauen: Hardware-Guide mit 32GB RAM, 1TB NVMe
System: Debian 12 mit Portainer Tutorial
Ziel: 20+ Services mit Monitoring, Backup, Reverse Proxy
Ergebnis: Produktive Umgebung mit GUI-Management über Portainer vs Cockpit vs Yacht
Docker vs Alternativen: Entscheidungshilfe
Docker vs Podman: Docker für Einsteiger → bessere Dokumentation, mehr Tutorials. Podman für Security → rootless by default, systemd-Integration.
Docker vs LXC: Docker für Anwendungen → portable, versioniert. LXC für System-Container → näher am Host, weniger Overhead.
Docker vs VM: Docker für Services → schneller Start, weniger RAM. VM für Isolation → komplette Trennung, verschiedene Kernel.
Docker Installation: Schritt-für-Schritt

1. Alte Docker-Versionen entfernen
Ubuntu/Debian:
sudo apt remove docker docker-engine docker.io containerd runc
sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
CentOS/RHEL/Fedora:
sudo dnf remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
2. Abhängigkeiten installieren
Ubuntu/Debian:
sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release
CentOS/RHEL/Fedora:
sudo dnf update
sudo dnf install dnf-plugins-core
3. Docker Repository hinzufügen
Ubuntu/Debian:
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
CentOS/RHEL/Fedora:
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

4. Docker installieren
Ubuntu/Debian:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
CentOS/RHEL/Fedora:
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
5. Docker-Service aktivieren
sudo systemctl start docker
sudo systemctl enable docker
6. Benutzer zur docker-Gruppe hinzufügen
sudo usermod -aG docker $USER
Kritisch: Melde dich ab und wieder an, damit die Gruppenzugehörigkeit aktiv wird. Alternativ: newgrp docker

7. Installation testen
docker --version
docker compose version
docker run hello-world
Erweiterte Fehlerdiagnose
| Problem | Ursache | Lösung | Technische Details |
|---|---|---|---|
docker: command not found |
Docker nicht installiert oder PATH falsch | which docker prüfen, ggf. neu installieren |
Binary liegt in /usr/bin/docker |
permission denied while trying to connect to Docker daemon |
Benutzer nicht in docker-Gruppe | sudo usermod -aG docker $USER und neu anmelden |
Socket /var/run/docker.sock braucht Gruppe docker |
Cannot connect to the Docker daemon |
Docker-Service läuft nicht | sudo systemctl start docker |
Daemon lauscht auf unix:///var/run/docker.sock |
docker-compose: command not found |
Alte Syntax oder Plugin fehlt | docker compose (mit Leerzeichen) verwenden |
Plugin-basiert seit Docker Compose v2 |
Job for docker.service failed to start |
Alte Docker-Reste oder Kernel-Problem | Vollständige Deinstallation und Neustart | Prüfe journalctl -u docker.service |
GPG error: repository key expired |
Veralteter Repository-Schlüssel | GPG-Schlüssel neu importieren | Schlüssel in /etc/apt/keyrings/docker.gpg |
docker: Error response from daemon: driver failed |
Storage-Driver Problem | /var/lib/docker löschen und neu starten |
overlay2 Storage-Driver Standard |
Container läuft nicht nach Reboot |
Restart-Policy fehlt | --restart unless-stopped bei docker run |
Policy in Container-Metadaten gespeichert |
Volume mount permission denied |
SELinux oder falsche Berechtigungen | sudo chown -R $USER:$USER /pfad/zum/volume |
UID/GID-Mapping zwischen Host und Container |
OCI runtime create failed |
cgroups v2 Problem | Kernel-Parameter systemd.unified_cgroup_hierarchy=0 | Legacy cgroups für ältere Container |
network bridge not found |
Docker-Netzwerk beschädigt | sudo systemctl restart docker |
Bridge docker0 wird automatisch erstellt |
pull access denied |
Rate-Limiting oder private Registry | Docker Hub Login oder Mirror verwenden | 100 Pulls/6h für anonyme Nutzer |
Spezielle Installationsszenarien
Raspberry Pi Installation
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker pi
sudo apt install docker-compose-plugin

Proxmox LXC Container Setup
# LXC Container als privileged erstellen
# In Proxmox: Container Options → Features → Nesting aktivieren
echo 'lxc.apparmor.profile: unconfined' >> /etc/pve/lxc/CONTAINER_ID.conf
echo 'lxc.cgroup2.devices.allow: a' >> /etc/pve/lxc/CONTAINER_ID.conf
# Container neu starten und Docker installieren
WSL2 Ubuntu Installation
echo '[boot]' >> /etc/wsl.conf
echo 'systemd=true' >> /etc/wsl.conf
# WSL neu starten (in PowerShell): wsl --shutdown
# Normale Docker-Installation durchführen
Performance-Optimierung und Daemon-Konfiguration
Storage-Driver und Logging konfigurieren
sudo nano /etc/docker/daemon.json
{
"storage-driver": "overlay2",
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"default-address-pools": [
{
"base": "172.17.0.0/12",
"size": 24
}
],
"dns": ["8.8.8.8", "1.1.1.1"],
"max-concurrent-downloads": 3,
"max-concurrent-uploads": 5
}
System-Cleanup und Monitoring
docker system prune -a
docker volume prune
docker system df -v
docker stats --no-stream

Integration mit Home Server Hardware und Betriebssystem
Nach der Docker-Installation kannst du direkt mit dem Aufbau deiner Homeserver-Infrastruktur beginnen. Die Praxis zeigt: Docker-basierte Setups sind wartungsärmer als native Installationen, weil Updates isoliert ablaufen und Rollbacks möglich sind.
Nächste Schritte für deinen Homeserver
- Nextcloud mit Docker Compose installieren – Cloud-Storage für deine Dateien
- Plex Media Server installieren – Streaming für deine Mediensammlung
- Portainer Tutorial – Web-GUI für Container-Management
Hardware-Empfehlungen für Docker-Homeserver
Einsteiger-Setup (ca. 400€)
| Komponente | Spezifikation | Begründung |
|---|---|---|
| Mini-PC | Intel N100, 16GB RAM | Stromsparend (6W idle), x86-kompatibel |
| Storage | 512GB NVMe SSD | Schnelle Container-Starts, niedrige Latenz |
| Netzwerk | Gigabit Ethernet | Ausreichend für 5-10 Container |
Fortgeschritten-Setup (ca. 800€)
| Komponente | Spezifikation | Begründung |
|---|---|---|
| Server | AMD Ryzen 5600G, 32GB RAM | Mehr Cores für parallele Container |
| Storage | 1TB NVMe + 4TB HDD | SSD für Container, HDD für Daten |
| Netzwerk | 2.5GbE oder 10GbE | Höherer Durchsatz für Media-Streaming |
Debug-Sequence bei kritischen Problemen
- Docker-Installation prüfen:
docker --version && systemctl status docker - Benutzerrechte überprüfen:
groups $USER && docker ps - Service-Status:
sudo systemctl start docker && sudo systemctl enable docker - Container-Test:
docker run --rm hello-world - Daemon-Logs:
sudo journalctl -u docker.service --no-pager -f - Socket-Permissions:
ls -la /var/run/docker.sock - Kernel-Module:
lsmod | grep overlay - Storage-Space:
df -h /var/lib/docker
Erweiterte Diagnose-Befehle
# Docker-Daemon Debug-Modus
sudo dockerd --debug --log-level=debug
# Container-Runtime prüfen
docker info | grep -i runtime
# Netzwerk-Konfiguration
docker network ls && ip addr show docker0
# cgroups-Version
mount | grep cgroup







