Docker-Fehler „Berechtigung verweigert“.

Docker Fehler Berechtigung Verweigert



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:





    1. Docker-Version 20.0 und höher
    2. 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:

$ Sudo systemctl startet Docker 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:

$ Sudo Benutzermod -aG Docker-Linux-Hinweis


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:

$ Sudo chown -R ' $USER ' : ' $USER ' $HOME / .Docker


Weisen Sie dem Verzeichnis abschließend wie folgt die Gruppe mit den Lese- und Schreibrechten zu:

$ Sudo chmod -R g+rw ' $HOME /.Docker'


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.