Bei der Arbeit mit Docker kann es vorkommen, dass der Befehl den Fehler „Berechtigung verweigert“ zurückgibt. Dieser Fehler tritt auf, wenn Sie versuchen, Docker ohne ausreichende Berechtigungen für den Befehl auszuführen.
Docker benötigt standardmäßig Sudo- oder Root-Berechtigungen, um die zugehörigen Befehle auszuführen. Der Versuch, einen Befehl ohne die erforderlichen Berechtigungen auszuführen, führt zum berüchtigten Fehler „Berechtigung verweigert“.
Dieses Tutorial stellt die verschiedenen Methoden und Techniken vor, mit denen Sie den Fehler „Berechtigung verweigert“ beheben können, wenn Sie versuchen, die Docker-Befehle auszuführen.
Beachten Sie, dass der Prozess der Ausführung von Docker in einer Rootless-Umgebung nicht behandelt wird. Sie können unser Tutorial zu Rootless Docker in der folgenden Ressource lesen:
Anforderungen:
Wie Sie sich vorstellen können, müssen Sie über Folgendes verfügen, um diesem Beitrag folgen zu können:
- Docker-Version 20.0 und höher
- Sudo- oder Root-Berechtigungen auf dem Hostsystem
Was ist der Fehler „Berechtigung verweigert“?
Wenn in Docker der Fehler „Berechtigung verweigert“ auftritt, bedeutet dies, dass das Hostsystem aufgrund unzureichender Berechtigungen keine Kommunikation mit dem Docker-Daemon herstellen kann. Ein Beispiel ist im Folgenden dargestellt:
$ Docker-Lauf -Es Busybox Sch
Wenn der angegebene Fehler auftritt, können Sie einige der folgenden Methoden verwenden, um zu erfahren, wie Sie ihn beheben können.
Methode 1: Führen Sie Docker als Root aus
Die erste und offensichtlichste Methode zur Behebung des Docker-Fehlers „Permission Denied“ ist die Verwendung des Befehls „sudo“. Wenn Sie über Sudo-Berechtigungen verfügen, können Sie das Problem beheben, indem Sie den zugehörigen Befehl mit Sudo ausführen.
Um den besagten Fehler beispielsweise zu beheben, können wir sudo wie folgt vor dem Befehl anhängen:
$ Sudo Docker-Lauf -Es Busybox Sch
Wie Sie sehen, ruft Docker erfolgreich die erforderlichen Bilder ab und führt den Container aus.
Methode 2: Starten Sie den Docker-Daemon neu
Manchmal kann in Docker die Fehlermeldung „Berechtigung verweigert“ angezeigt werden, wenn die Engine ein Problem hat. Anstatt das Problem manuell aufzuspüren, können Sie einen schnellen Neustart des Docker-Daemons versuchen, um ihn neu zu laden.
Überprüfen Sie zunächst den Status des Docker-Daemons wie folgt:
$ Docker Systemctl Status Docker
Sobald Sie sichergestellt haben, dass Docker ausgeführt wird, starten Sie den Dienst mit dem folgenden Befehl neu:
Dadurch sollte der Docker-Daemon gestartet und alle potenziellen Probleme behoben werden, die Sie möglicherweise daran hindern, einen Befehl auszuführen.
Methode 3: Aktivieren Sie den Nicht-Root-Benutzer
Eine weitere Methode, mit der Sie den Fehler „Berechtigung verweigert“ in Docker beheben können, besteht darin, Nicht-Root-Benutzern die Ausführung der Docker-Befehle zu ermöglichen.
Um diese Methode zu aktivieren, melden Sie sich beim Hostsystem an und erstellen Sie eine neue Gruppe für Docker.
$ Sudo Gruppenhinzufügen -F Docker
Fügen Sie als Nächstes wie folgt einen beliebigen Benutzer zur Docker-Gruppe hinzu:
Der vorherige Befehl sollte den Linuxhint-Benutzer zur Docker-Gruppe hinzufügen.
Wenden Sie abschließend die Gruppenänderungen mit dem folgenden Befehl auf die aktuelle Sitzung an:
$ newgrp Docker
Sobald Sie fertig sind, können Sie für jeden Benutzer in der Docker-Gruppe jeden Docker-Befehl ausführen, ohne sudo zu verwenden.
Methode 4: Konfigurieren Sie die Docker-Berechtigungen neu
Die nächste Methode, die Sie verwenden können, ist das Zurücksetzen der Berechtigungen für Docker-Sockets. Ändern Sie zunächst den Besitz des Docker-Unix-Sockets, indem Sie den folgenden Befehl ausführen:
$ Sudo chown root:docker / War / laufen / docker.sock
Übernehmen Sie als Nächstes den Besitz des versteckten Docker-Verzeichnisses in Ihrem Home-Verzeichnis, indem Sie den folgenden Befehl verwenden:
Weisen Sie dem Verzeichnis abschließend wie folgt die Gruppe mit den Lese- und Schreibrechten zu:
Die bereitgestellten Methoden sollten ausreichende Berechtigungen für wichtige Docker-Dateien und -Verzeichnisse festlegen.
Abschluss
In diesem Tutorial haben wir gelernt, wie wir die vier Hauptmethoden verwenden können, um den Docker-Fehler „Berechtigung verweigert“ beim Aufrufen eines Docker-Befehls zu beheben.