Docker unter Linux installieren: Ubuntu, Debian, RHEL | INTROSERV
EUR
european

EUR

usa

USD

German De
Ex. VAT Ex. VAT 0%

Docker auf gängigen Linux-Distributionen installieren: Docker-Installationsanleitung für Linux

Schwierigkeitsgrad: Mittel
Geschätzte Dauer: ca. 15 Minuten
Ziel: Eine sichere, dezentrale Umgebung aufbauen, indem Docker für das Self-Hosting persönlicher Dienste wie Nextcloud, Bitwarden und Matrix eingerichtet wird.

Einführung

Der Betrieb eigener „Cloud“-Dienste garantiert Privatsphäre und vollständige Datenhoheit. Um Dienste wie Nextcloud (für die Dateiablage), Bitwarden (für die Passwortverwaltung) oder Matrix (für sichere Kommunikation) bereitzustellen, ohne sich mit komplexen Abhängigkeiten auf Host-Ebene herumzuschlagen, benötigen Sie isolierte Umgebungen. In dieser Anleitung zeigen wir, wie Sie Docker unter Linux installieren, um eine robuste, reproduzierbare Grundlage für das Self-Hosting zu schaffen. Ob Sie ein vollständiges Docker-Setup unter Linux für einen einzelnen Server oder für eine ganze Flotte benötigen: Jeder der folgenden Schritte gilt für Ubuntu, Debian und RHEL-kompatible Distributionen. Am Ende dieser Anleitung zur Docker-Installation unter Linux verfügen Sie über eine produktionsreife Umgebung mit sicheren Standardeinstellungen nach Best Practices.

Terminologie

Stellen Sie vor dem Fortfahren sicher, dass Sie diese Kernbegriffe verstehen:

  • Docker: Eine Plattform zum Entwickeln, Ausliefern und Ausführen von Anwendungen in isolierten Umgebungen.
  • Docker Engine: Die zentrale Client-Server-Technologie, die Container erstellt und ausführt.
  • Container: Eine standardisierte, ausführbare Einheit, die den Quellcode einer Anwendung mit den Betriebssystembibliotheken und Abhängigkeiten bündelt, die zu ihrer Ausführung erforderlich sind.
  • Image: Eine schreibgeschützte Vorlage mit Anweisungen zum Erstellen eines Containers.
  • Docker-Daemon: Der Hintergrunddienst auf dem Host, der das Erstellen, Ausführen und Verteilen von Containern verwaltet.
  • Docker CLI: Die Befehlszeilenschnittstelle zur Interaktion mit dem Daemon.
  • Docker Hub: Eine von Docker betriebene öffentliche Registry zum Finden und Teilen von Container-Images.
  • Registry: Ein Speicher- und Verteilsystem für Container-Images.
  • Installation: Der Vorgang, Programme ausführbereit zu machen.
  • Paketmanager: Ein Softwarewerkzeug, das das Installieren, Aktualisieren, Konfigurieren und Entfernen von Programmen automatisiert.
  • Repository: Ein zentraler Ort, an dem Softwarepakete gespeichert und gepflegt werden.
  • Offizielles Docker-Repository: Die von Docker betreute vertrauenswürdige Quelle für stabile Softwarepakete.
  • Paket: Ein komprimiertes Dateiarchiv, das alle zu einer bestimmten Anwendung gehörenden Dateien enthält.
  • Abhängigkeit: Ein Programm oder eine Bibliothek, die ein anderes Programm für seine korrekte Funktion benötigt.
  • Stabile Version (Stable Release): Eine Softwareversion, die gründlich getestet wurde und als zuverlässig für den Produktionseinsatz gilt.
  • Version: Ein eindeutiger Zustand der Software, der ihre jeweiligen Funktionen und Korrekturen widerspiegelt.

Voraussetzungen

Stellen Sie vor Beginn sicher, dass die folgenden Bedingungen erfüllt sind:

  • Betriebssystem: Ubuntu 20.04/22.04/24.04 LTS, Debian 11/12/13 oder RHEL-kompatibel (AlmaLinux, Rocky, RHEL) 8/9/10
  • Zugriff: sudo- oder root-Zugriff auf den Server
  • Erforderliche Kenntnisse: sicherer Umgang mit der Linux-Befehlszeile

Schritt 1: Docker-Repository einrichten

Um die neueste, sichere und stabile Version zu erhalten, verwenden Sie stets das offizielle Docker-Repository statt der Standard-Repositories des Betriebssystems.

Für Ubuntu:

Aktualisieren Sie zunächst den Index Ihres Linux-Paketmanagers und installieren Sie die erforderlichen Pakete, damit apt ein Repository über HTTPS nutzen kann:

sudo apt update sudo apt install ca-certificates curl gnupg lsb-release

Fügen Sie den offiziellen GPG-Schlüssel von Docker hinzu:

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

Richten Sie das stabile Repository ein:

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

Für Debian:

Die Schritte zum Installieren von Docker unter Debian entsprechen dem Ablauf unter Ubuntu, verweisen aber auf die Debian-spezifische Repository-URL. Aktualisieren Sie zunächst den Index Ihres Linux-Paketmanagers und installieren Sie die erforderlichen Pakete:

sudo apt update sudo apt install ca-certificates curl gnupg lsb-release

Fügen Sie den offiziellen GPG-Schlüssel von Docker hinzu:

sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Richten Sie das stabile Repository ein:

echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/debian $(lsb_release -cs) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Für RHEL-kompatible Systeme (AlmaLinux, Rocky, RHEL):

Installieren Sie das Paket yum-utils und richten Sie das stabile Repository ein:

sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo

Info

Docker veröffentlicht Pakete für alle RHEL-kompatiblen Distributionen (einschließlich AlmaLinux und Rocky Linux) unter dem Repository-Pfad centos. Die Verwendung dieser URL ist vorgesehen und wird vollständig unterstützt.

Ergebnis: Das Docker-Repository ist nun Ihrem System hinzugefügt, sodass der Paketmanager die neuesten Docker-Pakete abrufen kann.

Schritt 2: Docker unter Ubuntu und Debian installieren

Ist das Docker-Repository eingerichtet, fahren Sie mit der Installation der Docker Engine unter Ubuntu (oder Debian - die Befehle sind identisch) fort. Dieser Schritt gilt für beide Distributionen.

Entfernen Sie zunächst alle in Konflikt stehenden Pakete aus den Repositories des Betriebssystems:

sudo apt remove docker.io podman-docker containerd runc

Aktualisieren Sie den apt-Paketindex erneut und installieren Sie mit dem Linux-Paketmanager die erforderlichen Komponenten:

sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin

Ergebnis: Der Befehl wird ausgeführt und ruft die Pakete samt aller erforderlichen Abhängigkeiten aus dem Docker-Repository ab. Der Paketmanager sollte die Installation der Docker Engine ohne Fehler abschließen.

Info

docker-ce steht für Docker Community Edition, die kostenlose Version, die sich ideal für Self-Hoster eignet.

Schritt 3: Docker auf RHEL-kompatiblen Systemen (AlmaLinux, Rocky, RHEL) installieren

Auf RHEL-basierten Systemen installieren Sie die Docker Engine mit yum.

Entfernen Sie zunächst alle in Konflikt stehenden Pakete aus den Repositories des Betriebssystems:

sudo yum remove docker docker-client docker-client-latest docker-common \ docker-latest docker-latest-logrotate docker-logrotate docker-engine \ podman runc

Führen Sie den folgenden Befehl aus:

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin

Ergebnis: Der Paketmanager installiert die erforderlichen Pakete. Sie werden aufgefordert, den GPG-Schlüssel zu akzeptieren (sofern Sie nicht das Flag -y übergeben); bestätigen Sie ihn. Nach Abschluss erscheint eine Erfolgsmeldung.

Schritt 4: Überprüfung der Docker-Engine-Installation

Nach der Installation hängt das Verhalten des Docker-Daemons von der Distribution ab. Unter Ubuntu und Debian startet docker.service automatisch nach der Installation. Auf Distributionen der RHEL-Familie ist das nicht der Fall.

Warning

Nur RHEL-Familie: Wurde bei der Installation der Kernel aktualisiert (zum Beispiel über eine Abhängigkeit kernel-core), starten Sie den Server neu, bevor Sie den Docker-Dienst starten:

sudo reboot

Wird dieser Schritt übersprungen, kann systemctl start docker mit Fehlern zu br_netfilter / addrtype fehlschlagen, weil der laufende Kernel nicht mehr zu den installierten Modulen passt.

Sobald der Server mit dem aktuellen Kernel läuft, starten und aktivieren Sie den Dienst. Die folgenden Befehle sind idempotent und können auf allen Systemen gefahrlos ausgeführt werden:

sudo systemctl start docker sudo systemctl enable docker

Ergebnis: Der Docker-Daemon startet, und das System legt einen Symlink an, damit er bei jedem Neustart automatisch gestartet wird.

Prüfen Sie den Erfolg der Docker-Engine-Installation, indem Sie das Image hello-world ausführen:

sudo docker run hello-world

Ergebnis: Die Docker CLI kontaktiert den Docker-Daemon, lädt das Image hello-world von Docker Hub und startet einen Container. In Ihrem Terminal sollte die Meldung „Hello from Docker!“ erscheinen.

Schritt 5: Docker-Schritte nach der Installation

Standardmäßig erfordert das Ausführen von Docker-Befehlen sudo. Um Docker-Befehle als Nicht-root-Benutzer auszuführen, müssen Sie Ihren Benutzer zur Gruppe docker hinzufügen. Dies sind die wesentlichen Schritte nach der Docker-Installation, um Ihre selbst gehostete Infrastruktur komfortabel zu verwalten.

Erstellen Sie die Gruppe docker (falls sie noch nicht existiert):

getent group docker || sudo groupadd docker

Fügen Sie Ihren Benutzer zur Gruppe docker hinzu:

sudo usermod -aG docker $USER

Ergebnis: Ihr Benutzer wurde der Gruppe hinzugefügt. Damit die Änderungen wirksam werden, müssen Sie sich ab- und wieder anmelden oder die neue Gruppenmitgliedschaft in der aktuellen Sitzung aktivieren:

newgrp docker

Info

newgrp docker startet eine neue Shell mit der aktualisierten Gruppenmitgliedschaft. Jeder anschließend ausgeführte docker-Befehl funktioniert ohne sudo, jedoch nur innerhalb dieser neuen Shell. Wenn Sie ein weiteres Terminal öffnen, ist weiterhin eine vollständige erneute Anmeldung erforderlich.

Warning

Die Mitgliedschaft in der Gruppe docker gewährt Rechte, die root-Zugriff auf den Host entsprechen. In Self-Hosting-Umgebungen mit Sicherheitspriorität sollten Sie dringend den Betrieb von Docker im Rootless-Modus in Betracht ziehen (siehe Schritt 6).

Testen Sie nach newgrp docker (oder nach erneuter An- und Abmeldung) die Konfiguration, indem Sie einen Befehl ohne sudo ausführen:

docker run hello-world

Ergebnis: Sie sollten die Meldung „Hello from Docker!“ erneut sehen. Das bestätigt, dass Ihre Schritte nach der Docker-Installation erfolgreich waren.

Alternative: Schnellinstallation per Convenience-Skript

Für Test- oder Entwicklungsumgebungen stellt Docker ein Convenience-Skript bereit.

Warning

Diese Methode wird für die Produktion nicht empfohlen. Sie läuft ohne Versionsfixierung, führt ein bedingungsloses Upgrade durch, falls Docker bereits installiert ist, und zieht alle Abhängigkeiten ohne Überprüfung nach.

Es wird empfohlen, das Skript herunterzuladen und vor der Ausführung zu prüfen:

curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh

Schritt 6 (optional): Docker im Rootless-Modus betreiben

In Self-Hosting-Umgebungen erhöht der Rootless-Betrieb die Sicherheit, da der Docker-Daemon und die Container als Nicht-root-Benutzer ausgeführt werden.

6.1 Voraussetzungen

Stoppen und deaktivieren Sie zunächst den systemweiten Docker-Dienst und den Socket und entfernen Sie die Socket-Datei:

sudo systemctl stop docker.service docker.socket sudo systemctl disable docker.service docker.socket sudo rm -f /var/run/docker.sock

Prüfen Sie, ob für Ihren Benutzer subuid und subgid konfiguriert sind (in der Regel geschieht das automatisch):

cat /etc/subuid cat /etc/subgid

Aktivieren Sie Lingering für Ihren Benutzer, damit der Daemon beim Booten starten kann:

sudo loginctl enable-linger $USER

6.2 Zusätzliche Pakete installieren

Für Ubuntu/Debian:

sudo apt install docker-ce-rootless-extras uidmap dbus-user-session

Für AlmaLinux/RHEL (shadow-utils stellt uidmap bereit und ist in der Regel vorinstalliert):

sudo yum install docker-ce-rootless-extras

6.3 Rootless-Daemon installieren

Führen Sie das Setup-Skript aus einer vollständigen Login-Sitzung des Zielbenutzers aus (nicht über sudo su oder eine SSH-Shell ohne Login). Befinden Sie sich in einem Kontext ohne Login, exportieren Sie zuerst die erforderlichen Variablen:

export XDG_RUNTIME_DIR=/run/user/$(id -u) export DBUS_SESSION_BUS_ADDRESS=unix:path=$XDG_RUNTIME_DIR/bus

Führen Sie anschließend das Setup-Skript aus:

dockerd-rootless-setuptool.sh install

Info

Der erste Lauf des Setup-Skripts unmittelbar nach dem Aktivieren von Linger kann instabil sein. Falls der Daemon nicht startet, führen Sie das Installationsskript einfach erneut aus.

6.4 Umgebungsvariablen konfigurieren

Fügen Sie die folgenden Variablen zu Ihrer Shell-Konfigurationsdatei hinzu (z. B. ~/.bashrc):

export PATH=/usr/bin:$PATH export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock

Laden Sie die Datei neu (source) oder starten Sie die Shell neu, um die Änderungen zu übernehmen.

6.5 Einschränkungen des Rootless-Modus

  • Ports < 1024 können nicht veröffentlicht werden (Docker bietet Workarounds wie setcap, slirp4netns-Portweiterleitung oder Routing).
  • Keine Unterstützung für --net=host.
  • Swarm-Modus und Overlay-Netzwerke werden nicht unterstützt.
  • AppArmor wird nicht unterstützt.
  • Das Flag --privileged gewährt keinen root-Zugriff auf Host-Ebene.
  • Die Daten werden in ~/.local/share/docker gespeichert (für Backups und Quotas zu beachten).
  • Erfordert cgroup v2.
  • Verwendet den Speichertreiber overlayfs statt overlay2.

Rollback

Wenn Sie die Docker-Installation unter Linux rückgängig machen müssen - sei es ein Standard-Setup oder eine Rootless-Konfiguration -, führen Sie die folgenden Schritte der Reihe nach aus.

1. Rootless-Rollback (überspringen, falls Rootless nicht konfiguriert wurde):

Falls Sie den Rootless-Modus konfiguriert haben, machen Sie diese Änderungen zuerst rückgängig, bevor Sie Pakete entfernen:

dockerd-rootless-setuptool.sh uninstall rm -rf ~/.local/share/docker sudo loginctl disable-linger $USER

Info

Die Deinstallation des Rootless-Modus schlägt fehl, wenn die Pakete bereits entfernt (purged) wurden, da das Setup-Skript Teil des Pakets docker-ce-rootless-extras ist. Deinstallieren Sie den Rootless-Modus daher immer, solange die Pakete noch vorhanden sind.

2. Pakete entfernen:

Debian/Ubuntu:

sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin docker-ce-rootless-extras sudo rm -rf /var/lib/docker /var/lib/containerd sudo rm -f /etc/apt/sources.list.d/docker.list /etc/apt/keyrings/docker.gpg

AlmaLinux/Rocky/RHEL:

sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin docker-ce-rootless-extras sudo rm -rf /var/lib/docker /var/lib/containerd sudo rm -f /etc/yum.repos.d/docker-ce.repo

3. Gruppe entfernen:

sudo groupdel docker || true

Warning

Das Entfernen der Pakete löscht Images, Container, Volumes und angepasste Konfigurationsdateien nicht automatisch. Die rm -rf-Befehle löschen diese Datenverzeichnisse unwiderruflich.

Fazit

Ihre Docker-Installation unter Linux ist abgeschlossen und überprüft. Die Grundlage ist nun sicher aufgesetzt. Sie können nun Container für Ihre selbst gehosteten Werkzeuge bereitstellen und behalten die volle Kontrolle über Ihre Nextcloud-Dateien, Bitwarden-Tresore und Matrix-Kommunikation.

Dokumentversion: 1.0
Zuletzt aktualisiert: Mai 2026
Verantwortlich: Team für technische Dokumentation

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA