Installieren von Docker auf Ubuntu ist sehr leicht! Jeder, auch die Neulinge, kann es innerhalb von 15 Minuten installieren. Nach der Installation von Docker ist mir aufgefallen, dass ich die meisten Docker-Operationen als normaler Benutzer nicht ausführen konnte. Ich musste Docker jedes Mal entweder als "root"-Benutzer oder mit "sudo"-Berechtigung ausführen. Immer wenn ich versuche, Docker als Nicht-Root-Benutzer oder ohne sudo-Berechtigung auszuführen, erhalte ich die folgende Fehlermeldung:
Berechtigung verweigert beim Versuch, eine Verbindung zum Docker-Daemon-Socket unter unix:///var/run/docker.sock herzustellen:Holen Sie sich http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version:dial unix /var/run/docker.sock:connect:Erlaubnis verweigert
Zum Beispiel wollte ich die Docker-Version als normaler Benutzer mit dem Befehl:
überprüfen$ Docker-Version
Und ich bekomme diese Fehlermeldung:
Client:Docker Engine – CommunityVersion:19.03.8API-Version:1.40Go-Version:go1.12.17Git-Commit:afacb8b7f0Erstellt:Wed Mar 11 01:25:46 2020OS/Arch:linux/amd64Experimental:falseBerechtigung verweigert beim Versuch, eine Verbindung zum Docker-Daemon-Socket unter unix:///var/run/docker.sock herzustellen:Holen Sie sich http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version:wählen Sie unix /var/run/ docker.sock:verbinden:Zugriff verweigert
Aber wenn ich denselben Befehl mit sudo-Berechtigung ausführe;
$ sudo Docker-Version
Es zeigt die gesamten Details der aktuell installierten Docker-Version an, wie in der folgenden Ausgabe gezeigt.
Client:Docker Engine – Community-Version:19.03.8 API-Version:1.40 Go-Version:go1.12.17 Git-Commit:afacb8b7f0 Erstellt:Wed Mar 11 01:25:46 2020 OS/Arch:linux/amd64 Experimental:falseServer:Docker-Engine – Community-Engine:Version:19.03.8 API-Version:1.40 (Mindestversion 1.12) Go-Version:go1.12.17 Git-Commit:afacb8b7f0 Erstellt:Wed Mar 11 01:24:19 2020 OS/Arch:linux/amd64 Experimental:false containerd:Version:1.2.13 GitCommit:7ad184331fa3e55e52b890ea95e65ba581ae3429 runc:Version:1.0.0-rc10 GitCommit:dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init:Version:0.1833.0 Git
Nachdem ich auf der Docker-Dokumentationsseite gesucht hatte, stellte ich fest, dass der Docker-Daemon standardmäßig an einen Unix-Socket statt an einen TCP-Port bindet. Da dieser Unix-Socket dem Root gehört user wird der Docker-Daemon nur als Root-Benutzer ausgeführt. Daher können die normalen Benutzer die meisten Docker-Befehle nicht ausführen.
Wenn Sie Docker als Nicht-Root-Benutzer unter Linux ausführen möchten, müssen Sie die folgenden Schritte ausführen. Ich habe dies auf dem Ubuntu 18.04-Server getestet und es hat einwandfrei funktioniert! Es sollte auch auf anderen Linux-Distributionen funktionieren.
Docker als Nicht-Root-Benutzer unter Linux ausführen
Um den Fehler Docker-Berechtigung verweigert zu beheben und Docker als Nicht-Root-Benutzer zu verwenden, erstellen Sie eine Gruppe namens "docker" mit folgendem Befehl:
$ sudo groupadd DockerFügen Sie als Nächstes Ihren Benutzer zum Docker hinzu Gruppe:
$ sudo usermod -aG docker $USERMelden Sie sich nach dem Hinzufügen des Benutzers zur Docker-Gruppe ab und wieder an, um die Änderungen zu übernehmen.
Führen Sie alternativ den folgenden Befehl aus, um die Änderungen auf Gruppen anzuwenden:
$ newgrp DockerVon nun an kann der normale (Nicht-Root-) Benutzer Docker ohne sudo-Berechtigungen verwenden.
Lassen Sie mich die folgenden Befehle als normaler Benutzer ausführen:
$ Docker-Version$ docker starte hello-worldBeispielausgabe:
Sehen? Ich kann diese beiden Docker-Befehle jetzt ohne sudo-Berechtigung ausführen.
Nur für den Fall, dass Sie bereits einige Docker-Befehle mit der Berechtigung „sudo“ ausgeführt haben, bevor Sie Ihren Benutzer zur Docker-Gruppe hinzugefügt haben, wird wahrscheinlich ein Fehler wie der folgende angezeigt.
WARNUNG:Fehler beim Laden der Konfigurationsdatei:/home/user/.docker/config.json -stat /home/user/.docker/config.json:Berechtigung verweigertDie obige Fehlermeldung weist darauf hin, dass Ihre ~/.docker/ Verzeichnis wurde aufgrund der 'sudo'-Befehle mit falschen Berechtigungen erstellt. Um dieses Problem zu beheben, ändern Sie den Besitz und die Berechtigungen dieses Verzeichnisses mit den folgenden Befehlen:
$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R$ sudo chmod g+rwx "$HOME/.docker" -RMelden Sie sich ab und wieder an, damit dies wirksam wird.
Wenn das Problem immer noch nicht behoben wird, müssen Sie möglicherweise Ihre ~/.docker/ entfernen Verzeichnis. Es wird automatisch neu erstellt, aber Sie verlieren alle benutzerdefinierten Einstellungen, falls vorhanden.
Hoffe das hilft.