Docker im Rootless-Modus betreiben¶
Veröffentlicht am 27. August 2026 · Geschätzte Lesezeit: 5 Minuten
Im Rootless-Modus laufen sowohl der Docker-Dienst als auch seine Container unter einem normalen Linux-Benutzer. Das verringert die Folgen vieler möglicher Sicherheitslücken, weil der Docker-Daemon keine Root-Rechte besitzt. Die Umstellung vorhandener Anwendungen erfolgt nicht automatisch. Plane deshalb etwa 45 Minuten für Installation, Test und eine schrittweise Migration ein.
Voraussetzungen
- Ein Debian- oder Ubuntu-Server mit Docker Engine aus der offiziellen Docker-Paketquelle
- Ein normaler Linux-Benutzer mit
sudo-Rechten - Backups aller Compose-Dateien, Datenbanken und eingebundenen Datenordner
- Konsolenzugriff oder eine zweite SSH-Sitzung als Rückweg
1. Vorhandene Docker-Umgebung erfassen¶
Zeige zunächst den aktuell verwendeten Docker-Kontext an. Führe den Befehl als normaler Benutzer aus:
Notiere die laufenden Container und ihre Namen:
Suche anschließend deine Compose-Dateien und sichere sie zusammen mit den Anwendungsdaten. Rootless Docker verwendet einen eigenen Speicherbereich und übernimmt vorhandene Container, Images und Volumes nicht automatisch.
Warning
Stoppe den bisherigen Docker-Dienst noch nicht. Richte Rootless Docker zunächst parallel ein und teste eine unkritische Anwendung. So bleibt der bisherige Docker-Kontext als Rückweg verfügbar.
2. Voraussetzungen installieren¶
Aktualisiere die Paketliste auf dem Server:
Installiere die Werkzeuge für untergeordnete Benutzer- und Gruppen-IDs sowie Benutzerdienste:
Falls das Rootless-Einrichtungswerkzeug noch fehlt, installiere das offizielle Zusatzpaket:
3. Untergeordnete IDs prüfen¶
Prüfe als normaler Benutzer den Eintrag in /etc/subuid:
Prüfe danach den entsprechenden Eintrag in /etc/subgid:
Beide Ausgaben müssen einen Bereich mit mindestens 65.536 IDs zeigen. Fehlt ein Eintrag, brich die Einrichtung ab. Das Rootless-Werkzeug nennt beim Start die fehlende Voraussetzung; ändere die ID-Bereiche nicht ohne vorherige Sicherung und Prüfung vorhandener Benutzerzuordnungen.
4. Rootless Docker einrichten¶
Starte die Einrichtung als normaler Benutzer, nicht mit sudo. Weil der bisherige systemweite Docker-Dienst vorerst weiterläuft, wird --force benötigt:
Das Werkzeug erstellt einen benutzereigenen Systemd-Dienst und normalerweise den Docker-Kontext rootless. Beachte am Ende der Ausgabe mögliche Hinweise zu Umgebungsvariablen.
Erlaube dem Benutzerdienst, auch ohne aktive Anmeldung zu starten. Ersetze <linux-benutzer> durch den Benutzer, unter dem Rootless Docker eingerichtet wurde:
5. Benutzerdienst und Kontext prüfen¶
Zeige den Zustand des Rootless-Docker-Dienstes an. Dieser Befehl wird ohne sudo ausgeführt:
Liste anschließend alle Docker-Kontexte auf:
Aktiviere den Rootless-Kontext:
Kontrolliere, ob der Serverteil tatsächlich als Rootless-Daemon läuft:
6. Testcontainer starten¶
Starte einen kurzlebigen offiziellen Testcontainer:
Der Test lädt ein kleines Image, startet es im Rootless-Daemon und entfernt den Container danach wieder. Die Erfolgsmeldung bestätigt nur die Grundfunktion; Anwendungen mit Geräten, Host-Netzwerk oder niedrigen Ports müssen separat geprüft werden.
7. Erste Compose-Anwendung migrieren¶
Wähle eine unkritische Anwendung mit aktuellem Datenbackup. Wechsle in ihren Compose-Ordner. Ersetze <app-ordner> durch den vollständigen Pfad:
Prüfe vor dem Start, dass weiterhin der Rootless-Kontext aktiv ist:
Starte die Anwendung im Rootless-Daemon:
Kontrolliere Status und Protokoll:
Warning
Rootless Docker kann privilegierte Container, direkten Gerätezugriff, network_mode: host und Ports unter 1024 nicht in jeder Umgebung unverändert abbilden. Migriere solche Dienste erst nach Prüfung der offiziellen Einschränkungen. Ein Reverse Proxy auf einem höheren internen Port ist häufig der sauberere Weg.
8. Bind-Mounts und Rechte prüfen¶
Erstellt oder verändert die Anwendung keine Dateien, kontrolliere die Rechte des eingebundenen Host-Ordners. Ersetze <datenordner> durch den tatsächlichen Pfad:
Ändere Besitzer oder Rechte nicht pauschal mit 777. Prüfe zuerst, welche UID und GID das Image erwartet und wie Rootless Docker diese IDs auf dem Host abbildet. Nutze nach Möglichkeit benannte Docker-Volumes für neue Anwendungen.
9. Systemweiten Docker-Dienst erst später abschalten¶
Migriere jede Anwendung einzeln und teste sie. Erst wenn alle benötigten Dienste im Rootless-Kontext zuverlässig laufen, kannst du den alten Root-Daemon deaktivieren:
Prüfe danach erneut den Rootless-Dienst:
Danger
Deaktiviere den systemweiten Docker-Dienst nicht, solange dort noch benötigte Container oder nur dort vorhandene Volumes liegen. Das Umschalten des Kontextes verschiebt keine Daten.
10. Rückweg verwenden¶
Wenn eine Anwendung im Rootless-Modus nicht funktioniert, wechsle zurück zum bisherigen Kontext:
Starte bei Bedarf den systemweiten Docker-Dienst wieder:
Den Rootless-Dienst kannst du parallel stoppen, ohne seine Daten zu löschen:
Lösche den Rootless-Datenordner erst, wenn alle Daten gesichert und die Rückkehr erfolgreich getestet wurde.
11. Typische Fehler beheben¶
- Das Einrichtungswerkzeug fehlt: Prüfe, ob
docker-ce-rootless-extrasaus der offiziellen Docker-Paketquelle installiert ist. - Der Dienst startet erst nach der Anmeldung: Kontrolliere
loginctl enable-linger <linux-benutzer>. - Ein Port lässt sich nicht binden: Verwende einen Port ab 1024 oder einen passend abgesicherten Reverse Proxy.
- Ein Container sieht keine Geräte: Rootless Docker schränkt Geräte- und Privilegienzugriffe bewusst ein. Prüfe, ob dieser Dienst für Rootless geeignet ist.
- Die alten Container fehlen: Kontrolliere
docker context show; Rootless- und Root-Daemon besitzen getrennte Container- und Volume-Bestände.
Grundlage dieser Anleitung sind die aktuellen offiziellen Docker-Seiten zum Rootless-Modus und zur Fehlerbehebung, geprüft am 26. August 2026. Eine ergänzende Video-Erklärung bietet Docker Rootless Mode Tutorial: Complete Security Guide.
Fertig¶
Docker läuft jetzt testweise oder vollständig als normaler Benutzer. Die Funktionsprüfung ist erfolgreich, wenn der Kontext rootless aktiv ist, docker info Rootless meldet, der Testcontainer startet und die migrierte Anwendung ohne Rechte- oder Netzwerkfehler arbeitet.