Docker-Befehle werden so implementiert, dass normale Benutzer sie ausführen können

Docker-Befehle werden so implementiert, dass normale Benutzer sie ausführen können

Nach der Installation von Docker gibt es normalerweise eine Docker-Benutzergruppe

Schritt 2: Den aktuellen Benutzer zur Docker-Gruppe hinzufügen

sudo gpasswd -a ${USER} Docker

Schritt 3: Docker neu starten

sudo systemctl Neustart Docker

Schritt 4: Lese- und Schreibberechtigungen erteilen

sudo chmod a+rw /var/run/docker.sock

Ergänzung: Nicht-Root-Benutzer haben keine Berechtigung, Docker zu verwenden

Beim Ausführen von „docker run“ wird keine Berechtigung abgefragt

Offizielle Dokumentation zur Installation von Docker auf CentOS

Die Docker-Benutzergruppe wird bei der Installation von Docker-CE automatisch erstellt. Sie müssen der Docker-Benutzergruppe jedoch manuell Benutzer hinzufügen.

$ sudo usermod -aG docker $USER

Oder $ sudo usermod -aG docker {Benutzernamen angeben}

Aber nachdem der Benutzer zur Docker-Benutzergruppe hinzugefügt wurde, wird immer noch keine Berechtigung angefordert

Ich möchte beispielsweise Bash unter Ubuntu 14.04 ausführen:

[hsowan@localhost Shell-Arbeitsbereich]$ Docker ausführen -it --rm Ubuntu:14.04 Bash
Docker: Beim Versuch, eine Verbindung zum Docker-Daemon-Socket unter unix:///var/run/docker.sock herzustellen, wurde die Berechtigung verweigert: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.38/containers/create: dial unix /var/run/docker.sock: connect: Berechtigung verweigert.
Siehe „docker run --help“.

Warum? Der Grund ist, dass der Benutzer zwar der Docker-Benutzergruppe beigetreten ist, aber nicht zur Docker-Benutzergruppe gewechselt ist und daher immer noch keine Berechtigungen hat.

Wenn ein Benutzer gleichzeitig mehreren Benutzergruppen angehört, kann er zwischen den Benutzergruppen wechseln, um die Berechtigungen anderer Benutzergruppen zu erhalten.

$ newgrp Docker

Jetzt können Sie Docker-bezogene Befehle auch als Nicht-Root-Benutzer ausführen

Gibt es außer dem Hinzufügen von Benutzergruppen zu Benutzern noch eine andere Möglichkeit, Nicht-Root-Benutzern die Ausführung von Docker-bezogenen Befehlen zu gestatten?

OK, überprüfen wir die Berechtigungen von /var/run/docker.sock

$ sudo ll /var/run/docker.sock

Sie erhalten folgendes Ergebnis:

srw-rw----. 1 Root-Docker 0 22. September 15:29 /var/run/docker.sock

Ändern Sie nun direkt die Berechtigungen von /var/run/docker.sock

$ sudo chmod 666 /var/run/docker.sock

Jetzt können Sie Docker als Nicht-Root-Benutzer ausführen

$ docker run -it --rm ubuntu:14.04 bash
root@5c60abab6425:/# Katze /etc/os-release 
NAME="Ubuntu"
VERSION="14.04.5 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.5 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
root@5c60abab6425:/# beenden
Ausfahrt

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur.

Das könnte Sie auch interessieren:
  • Docker exec führt mehrere Befehle aus
  • So führen Sie Linux-Shell-Befehle in Docker aus
  • Docker führt einen Befehl in einem Container außerhalb des Containers aus
  • So führen Sie Docker-Befehle ohne sudo aus
  • Führen Sie nach dem Docker-Ausführen mehrere Befehle aus
  • Beheben Sie das Problem von Fehlern bei der Ausführung von Docker-Daemon-Befehlen

<<:  Beispiel für die Migration einer MySQL-Online-Protokollbibliothek

>>:  Kurs zur Web-Frontend-Entwicklung Was sind die Web-Frontend-Entwicklungstools

Artikel empfehlen

Schritte zur VMware-Konfiguration des VMnet8-Netzwerks

Inhaltsverzeichnis 1. Einleitung 2. Konfiguration...

Zwei Möglichkeiten, die CSS-Priorität zu verstehen

Methode 1: Werte hinzufügen Gehen wir zu MDN, um ...

So installieren Sie Django in einer virtuellen Umgebung unter Ubuntu

Führen Sie die folgenden Vorgänge im Ubuntu-Befeh...

HTML-Grundlagen: HTML-Inhaltsdetails

Beginnen wir mit dem Körper: Wenn Sie eine Webseit...

Beispiel einer Nginx-Standortübereinstimmungsregel

1. Grammatik Standort [=|~|~*|^~|@] /uri/ { ... }...

Einführung in das Layout des HTML-Seitenquellcodes_Powernode Java Academy

Einführung in das Layout des HTML-Seitenquellcode...

So verwenden Sie rsync unter Linux

Inhaltsverzeichnis 1. Einleitung 2. Installation ...