Kürzlich habe ich Docker auf Ubuntu installiert. Es war supereinfach. Aber als ich versuchte, einen Docker-Befehl auszuführen, wurde mir dieser Fehler angezeigt:
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/json: dial unix /var/run/docker.sock: connect: permission denied
Es ist nicht so, dass ich versuche, etwas Besonderes zu leiten. Es passiert auch für grundlegende Docker-Befehle wie ps.
Seltsam, nicht wahr? Lassen Sie mich Ihnen zeigen, wie Sie diesen ärgerlichen Fehler umgehen können.
Fixing „Berechtigung wurde beim Versuch verweigert Verbinden mit dem Docker-Daemon-Socket-Fehler mit Docker in Ubuntu
Es gibt zwei Möglichkeiten, damit umzugehen.
Lösung 1:Alle Docker-Befehle mit sudo ausführen
Wenn Sie sudo-Zugriff auf Ihrem System haben, können Sie jeden Docker-Befehl mit sudo ausführen und Sie werden nicht mehr sehen, dass „Erlaubnis verweigert, während versucht wird, eine Verbindung zum Docker-Daemon-Socket herzustellen“.
sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
13dc0f4226dc ubuntu "bash" 17 hours ago Exited (0) 16 hours ago container-2
2d9a8c190e6c ubuntu "/bin/bash" 17 hours ago Created container-1
Aber das Ausführen jedes Docker-Befehls mit sudo ist sehr unpraktisch. Sie verpassen das Hinzufügen von sudo am Anfang und Sie erhalten erneut die Fehlermeldung „Zugriff verweigert“.
Lösung 2:Docker-Befehle ohne sudo ausführen
Um die Docker-Befehle ohne sudo auszuführen, können Sie Ihr Benutzerkonto (oder das Konto, für das Sie versuchen, dieses Problem zu beheben) zur Docker-Gruppe hinzufügen.
Erstellen Sie zunächst die Docker-Gruppe mit dem Befehl groupadd. Die Gruppe kann bereits existieren, aber das Ausführen des Gruppenerstellungsbefehls schadet nicht.
sudo groupadd docker
Nachdem Sie nun die Docker-Gruppe haben, fügen Sie Ihren Benutzer mit dem Befehl usermod zu dieser Gruppe hinzu. Ich gehe davon aus, dass Sie versuchen, dies für Ihr eigenes Benutzerkonto zu tun, und in diesem Fall können Sie die Variable $USER verwenden.
sudo usermod -aG docker $USER
Überprüfen Sie, ob Ihr Benutzer zur Docker-Gruppe hinzugefügt wurde, indem Sie die Benutzer der Gruppe auflisten. Wahrscheinlich müssen Sie sich abmelden und wieder anmelden .
[email protected]:~$ groups
abhishek adm cdrom sudo dip plugdev lpadmin sambashare docker
Wenn Sie Ihre Gruppen überprüfen und Docker-Gruppen auch nach dem Abmelden nicht aufgelistet werden, müssen Sie Ubuntu möglicherweise neu starten . Um dies zu vermeiden, können Sie den newgrp-Befehl wie diesen verwenden:
newgrp docker
Wenn Sie jetzt versuchen, die Docker-Befehle ohne sudo auszuführen, sollte es problemlos funktionieren.
Weitere Fehlerbehebung
In einigen Fällen müssen Sie möglicherweise einigen Dateien zusätzliche Berechtigungen hinzufügen, insbesondere wenn Sie die Docker-Befehle in der Vergangenheit mit sudo ausgeführt haben.
Sie können versuchen, den Gruppenbesitz der Datei /var/run/docker.sock zu ändern.
sudo chown root:docker /var/run/docker.sock
Sie können auch versuchen, den Gruppenbesitz des Verzeichnisses ~/.docker zu ändern.
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R
Versuchen Sie dann, Docker mit sudo auszuführen. Es sollte in Ordnung sein.
Ich hoffe, dieses kleine Tutorial hat Ihnen geholfen, das lästige „Berechtigung verweigert beim Versuch, eine Verbindung zum Docker-Daemon-Socket unter unix:///var/run/docker.sock herzustellen“ zu beheben:Holen Sie sich http://%2Fvar%2Frun %2Fdocker.sock/v1.39/containers/json:Wählen Sie Unix /var/run/docker.sock:Verbinden:Zugriff verweigert ” Fehler mit Docker in Ubuntu.
Hat es das Problem für Sie behoben? Wenn ja, freue ich mich über einen kurzen Dankeskommentar von Ihnen. Falls nicht, helfe ich Ihnen gerne weiter, um dieses Problem zu beheben.