GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

So führen Sie Docker als Nicht-Root-Benutzer in Linux aus

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 Docker

Fügen Sie als Nächstes Ihren Benutzer zum Docker hinzu Gruppe:

$ sudo usermod -aG docker $USER

Melden 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 Docker

Von 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-world

Beispielausgabe:

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 verweigert

Die 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" -R

Melden 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.


Docker
  1. So überprüfen Sie die Redhat-Version

  2. Wie führe ich ein Programm in einem Docker-Container aus?

  3. So führen Sie MySQL in einem Docker-Container aus

  4. Führen Sie Docker als Nicht-Root-Benutzer aus

  5. So löschen Sie eine Nicht-Root-Nutzung mit UID 0 in Linux

So installieren Sie Docker CE unter Linux Mint 20

So ändern Sie den Benutzer unter Linux

So führen Sie eine .NET-App in Docker aus

So führen Sie PHPMyAdmin in einem Docker-Container aus

So führen Sie Grafana in einem Docker-Container aus

So führen Sie Docker-Container aus