Feb 11, 2026
Faradilla A.
5Min. Lesezeit
Der Docker-Fehler „permission denied“ (Zugriff verweigert) tritt in der Regel auf, wenn Ihr Benutzerkonto keine Berechtigung hat, auf den Docker-Daemon-Socket oder auf erforderliche Dateien und Verzeichnisse zuzugreifen.
Docker verwendet diese Beschränkungen, um unbefugten Zugriff zu verhindern. Sie können jedoch Ihren Arbeitsablauf stören, wenn Sie Entwicklungsumgebungen unter Ubuntu einrichten.
Um den Docker-Fehler „permission denied“ zu beheben, befolgen Sie diese sechs bewährten Lösungen:
Bevor Sie den Docker-Fehler „permission denied“ beheben, stellen Sie sicher, dass Ihr Linux-System die Voraussetzungen für das Ändern administrativer Einstellungen erfüllt.


Obwohl sich diese Anleitung auf Ubuntu konzentriert, gilt sie auch für die meisten Debian-basierten Distributionen.
Die häufigste Ursache für den Fehler „permission denied“ ist, dass Ihr Benutzerkonto nicht zur docker-Gruppe gehört.
Standardmäßig läuft der Docker-Daemon als root-eigener Systemdienst. Nur Benutzer in der Gruppe docker können mit ihm kommunizieren, ohne sudo zu verwenden.
Um dieses Problem zu beheben, fügen Sie Ihren aktuellen Benutzer der Gruppe docker hinzu:
sudo usermod -aG docker $USER
Dieser Befehl aktualisiert Ihr Benutzerkonto, indem er es (-a) der angegebenen Gruppe (-G) hinzufügt. Dadurch erhält Ihr Benutzer die Berechtigung, auf den Docker-Daemon-Socket zuzugreifen und Docker-Befehle direkt auszuführen.
Damit die neue Gruppenmitgliedschaft wirksam wird, melden Sie sich ab und anschließend wieder an.
Nachdem Sie sich erneut angemeldet haben, bestätigen Sie, dass die Änderung wirksam geworden ist:
id -nG
Die Ausgabe sollte docker in der Liste der Gruppen enthalten.

Wenn Sie sofort testen möchten, ohne sich abzumelden, führen Sie Folgendes aus:
newgrp docker
Dieser Befehl wendet die Gruppenänderung nur auf Ihre aktuelle Terminal-Sitzung an.
Wenn das Hinzufügen Ihres Benutzers zur Gruppe das Problem nicht behebt, können falsche Berechtigungen für Konfigurationsdateien oder eingehängte Volumes den Fehler verursachen.
Docker benötigt Lese- und Schreibzugriff auf seine Konfigurationsdateien, insbesondere auf config.json.
Prüfen Sie zunächst die Berechtigungen Ihres lokalen Docker-Konfigurationsverzeichnisses:
ls -l ~/.docker/

Wenn die Ausgabe zeigt, dass root statt Ihres Benutzers Eigentümer der Dateien ist, ändern Sie den Eigentümer mit dem Befehl chown:
sudo chown -R "$USER":"$USER" "$HOME/.docker"
Dieser Befehl ändert rekursiv den Besitz des Verzeichnisses .docker und seiner Inhalte auf Ihren aktuellen Benutzer.
Beheben Sie als Nächstes Berechtigungsprobleme im Zusammenhang mit eingehängten Volumes. Wenn Sie ein Host-Verzeichnis in einen Container einbinden, benötigt der Benutzer im Container die Berechtigung, aus diesem Verzeichnis zu lesen oder in dieses zu schreiben.
Wenn Sie beispielsweise einen Container mit einem Volume-Mount ausführen:
docker run -v ~/data:/app/data ubuntu
Stellen Sie sicher, dass das Host-Verzeichnis ~/data die korrekten Berechtigungen besitzt. Sie können dem Benutzer (u) Lese- und Schreibzugriff mit folgendem chmod-Befehl gewähren:
chmod u+rw ~/data
Dies stellt sicher, dass der Benutzer, dem das Verzeichnis gehört, über ausreichende Berechtigungen verfügt, um Daten innerhalb des eingehängten Volumes zu verwalten.
Der Docker-Daemon kommuniziert über einen Unix-Socket unter /var/run/docker.sock. Wenn dieser Socket falsche Berechtigungen hat, kann der Docker-Client keine Befehle an den Daemon senden.
Überprüfen Sie die aktuellen Socket-Berechtigungen:
ls -l /var/run/docker.sock
Sie sollten eine Ausgabe sehen, die der folgenden ähnlich ist:
srw-rw---- 1 root docker 0 Dec 18 10:00 /var/run/docker.sock
Diese Ausgabe zeigt, dass der Socket root gehört und die Gruppe docker Lese- und Schreibzugriff hat. Wenn Sie diese Ausgabe sehen und Ihr Benutzer zur docker-Gruppe gehört, ist die Socket-Konfiguration korrekt.

Wenn die Gruppe nicht docker ist oder die Berechtigungen abweichen, ändern Sie diese nicht manuell, indem Sie chmod 666 /var/run/docker.sock ausführen, insbesondere nicht in Produktionsumgebungen.
Dieser Befehl stellt ein erhebliches Sicherheitsrisiko dar, da er allen Systembenutzern Zugriff auf den Docker-Daemon gewährt und ihnen damit faktisch Root-Rechte auf dem Host einräumt.
Verlassen Sie sich stattdessen auf die Gruppenmitgliedschaft, indem Sie Ihren Benutzer zur docker-Gruppe hinzufügen. Der Docker-Daemon setzt beim Start automatisch die korrekten Socket-Berechtigungen.
Ein Docker-Fehler „permission denied“ kann auch innerhalb eines Containers auftreten, wenn dem Entrypoint-Skript die Ausführungsrechte fehlen.
Dieses Problem tritt häufig auf, wenn Sie Skripte von einem Nicht-Linux-Dateisystem wie Windows in den Docker-Build-Kontext verschieben. In diesen Fällen kann das Ausführungsbit verloren gehen.
Wenn dies geschieht, kann der Container nicht starten, weil er das in der ENTRYPOINT– oder CMD-Anweisung definierte Skript nicht ausführen kann.
Um das Problem zu beheben, fügen Sie nach der COPY-Zeile in Ihrer Dockerfile eine RUN-Anweisung hinzu. Dadurch werden dem Skript Ausführungsrechte erteilt:
RUN chmod +x /usr/local/bin/entrypoint.sh

Dies stellt sicher, dass das Skript unabhängig von seinen Berechtigungen auf dem Host-System ausführbar bleibt. Diesen Schritt benötigen Sie häufig, wenn Sie benutzerdefinierte Images erstellen, die auf Startskripte angewiesen sind.
Wenn ein Container mit Hardwaregeräten wie einem USB-Laufwerk, einer Webcam oder einer GPU interagieren muss, kann bei einem Gerätepfad wie /dev/ttyUSB0 ein „permission denied“-Fehler auftreten.
Standardmäßig werden Container isoliert ausgeführt und können nicht auf Host-Geräte zugreifen. Um den Zugriff zu ermöglichen, übergeben Sie das Gerät beim Starten des Containers ausdrücklich mit dem Flag –device:
docker run --device=/dev/ttyUSB0 my-image
Wenn der Container weitergehende Berechtigungen, aber keinen vollständigen Gerätezugriff benötigt, gewähren Sie spezifische Linux-Capabilities mit dem Flag –cap-add:
docker run --cap-add=SYS_ADMIN my-image
Dieser Ansatz folgt dem Prinzip der geringsten Privilegien – gewähren Sie dem Container nur die Berechtigungen, die er tatsächlich benötigt. Zu den gängigen Capabilities gehören NET_ADMIN für die Netzwerkkonfiguration und SYS_PTRACE für das Debugging.
Wenn bestimmte Geräte oder Capabilities nicht ausreichen, können Sie das Flag –privileged verwenden:
docker run --privileged my-image

Diese Option gewährt dem Container vollen Zugriff auf alle Host-Geräte und deaktiviert die meisten Sicherheitsisolierungsfunktionen.
In diesem Modus gestartete Container können Root-Rechte auf dem Hostsystem erlangen. Verwenden Sie –privileged nur in vertrauenswürdigen lokalen Entwicklungsumgebungen oder wenn keine sichereren Alternativen anwendbar sind.
Bevorzugen Sie für Produktions-Workloads stets –device für spezifische Hardware oder –cap-add für spezifische Capabilities.
Nachdem Sie Änderungen an Benutzergruppen oder Berechtigungen vorgenommen haben, starten Sie den Docker-Dienst neu, damit der Daemon die aktualisierte Konfiguration erkennt.
Docker mit systemctl neu starten:
sudo systemctl restart docker
Nachdem der Dienst neu gestartet wurde, überprüfen Sie die Behebung, indem Sie den Standard-hello-world-Container ohne sudo ausführen:
docker run hello-world
Wenn das Image erfolgreich heruntergeladen und ausgeführt wird und eine Willkommensmeldung anzeigt, haben Sie das Berechtigungsproblem behoben.

Wenn der Fehler weiterhin auftritt, starten Sie das gesamte System neu, um sicherzustellen, dass alle Gruppenmitgliedschaften und Sitzungsänderungen wirksam werden:
sudo reboot
Da Ihre Docker-Installation jetzt ohne Berechtigungsfehler funktioniert, können Sie sicher und zuverlässig mit Containern arbeiten.
Das Beheben von Umgebungsproblemen ist ein wesentlicher erster Schritt bei der Arbeit mit Docker. So können Sie sich darauf konzentrieren, Anwendungen zu entwickeln und bereitzustellen, statt Einrichtungsprobleme zu beheben.
Als nächsten Schritt vertiefen Sie Ihr Verständnis der grundlegenden Docker-Konzepte, indem Sie das vollständige Docker-Tutorial lesen. Es umfasst Image-Verwaltung, Container-Lebenszyklen, Docker Compose, Datenpersistenz und Container-Netzwerke.
Alle Tutorial-Inhalte auf dieser Website unterliegen Hostingers strengen redaktionellen Standards und Normen.