Docker und Docker Compose auf Linux installieren – Anfänger Guide

Docker und Docker Compose auf Linux installieren - Anfänger Guide – Docker Installation auf Linux - Modernes Docker Logo mit Terminal und Container-Symbolen

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

Docker Linux Installation Prozess-Diagramm mit vier Installationsschritten

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

Ubuntu Terminal Screenshot Docker Installation mit apt install Befehlen und deutscher Ausgabe

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

Linux Terminal Docker Benutzergruppe hinzufügen und Version prüfen ohne sudo

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

Raspberry Pi 4

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

Vergleich Docker Installation Standard-Repository vs offizielles Docker-Repository

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

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

  1. Docker-Installation prüfen: docker --version && systemctl status docker
  2. Benutzerrechte überprüfen: groups $USER && docker ps
  3. Service-Status: sudo systemctl start docker && sudo systemctl enable docker
  4. Container-Test: docker run --rm hello-world
  5. Daemon-Logs: sudo journalctl -u docker.service --no-pager -f
  6. Socket-Permissions: ls -la /var/run/docker.sock
  7. Kernel-Module: lsmod | grep overlay
  8. 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