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

Verstümmelte Zeichen und Lösungen im MySQL-Zeichensatz

Vorwort Ein Zeichensatz ist eine Reihe von Symbol...

jQuery-Plugin zur Implementierung des Dashboards

Das jQuery-Plug-In implementiert das Dashboard zu...

So finden und löschen Sie doppelte Zeilen in MySQL

Inhaltsverzeichnis 1. So finden Sie doppelte Zeil...

Beispiel zum Einbetten von H5 in die Webansicht des WeChat-Applets

Vorwort WeChat-Miniprogramme bieten neue offene F...

Implementierung interaktiver Daten zwischen QT und Javascript

1. Daten fließen von QT zu JS 1. QT ruft die JS-F...

Interpretation des Moduls zum Lastenausgleich mit nginx

Inhaltsverzeichnis Zwei Module zur Verwendung von...

Installationsmethode für komprimierte MySQL 5.6-Pakete

Es gibt zwei Installationsmethoden für MySQL: MSI...

So sortieren Sie eine Zeile oder Spalte in MySQL

Verfahren: Nach Beschreibung: Beides kann nicht e...

Centos7.3 So installieren und implementieren Sie Nginx und konfigurieren https

Installationsumgebung 1. gcc-Installation Um ngin...