So erhalten Sie Root-Berechtigungen in einem Docker-Container

So erhalten Sie Root-Berechtigungen in einem Docker-Container

Zunächst muss Ihr Container laufen

Sie können die CONTAINER-ID des Containers über sudo docker container ls oder sudo docker ps anzeigen.

Führen Sie abschließend den Befehl aus (7509371edd48 ist die oben angegebene CONTAINER-ID)

sudo docker exec -ti -u root 7509371edd48 bash

Ergänzung: Lösen Sie das Problem, dass Nicht-Root-Benutzer keine Berechtigung zum Ausführen von Docker-Befehlen haben

Problembeschreibung:

"Beim Versuch, eine Verbindung zum Docker-Daemon herzustellen, wurde die Berechtigung verweigert.
socket bei unix:///var/run/docker.sock: Holen
http://%2Fvar%2Frun%2Fdocker.sock/v1.26/images/json: Unix wählen
/var/run/docker.sock: Verbinden: Berechtigung verweigert"

Grund (aus dem Docker-Handbuch):

Verwalten Sie Docker als Nicht-Root-Benutzer

Der Docker-Daemon bindet sich an einen Unix-Socket statt an einen TCP-Port.
Standardmäßig gehört dieser Unix-Socket dem Benutzer root und andere Benutzer können
nur mit sudo darauf zugreifen. Der Docker-Daemon läuft immer als Root
Benutzer.

Wenn Sie sudo nicht verwenden möchten, wenn Sie den Docker-Befehl verwenden, erstellen Sie
eine Unix-Gruppe namens Docker und füge Benutzer hinzu. Wenn der Docker-Daemon
startet, macht es den Besitz des Unix-Sockets lesbar/schreibbar durch den
Docker-Gruppe.

Die Antwort liegt auf der Hand. Verwenden Sie entweder den Root-Benutzer oder erstellen Sie eine Benutzergruppe namens Docker und fügen Sie der Gruppe den Nicht-Root-Benutzer hinzu, den Sie für die Verwendung von Docker benötigen. Wenn Sie noch nicht wissen, wie das geht, lesen Sie weiter.

Methode 1:

Verwenden Sie sudo, um Administratorrechte zu erhalten und Docker-Befehle auszuführen. Diese Methode weist viele Einschränkungen auf, wenn Docker-Befehle über Skripte ausgeführt werden.

Methode 2:

Wenn der Docker-Daemon gestartet wird, erhält die Benutzergruppe mit dem Namen Docker standardmäßig die Berechtigung, den Unix-Socket zu lesen und zu schreiben. Solange die Docker-Benutzergruppe erstellt und der aktuelle Benutzer zur Docker-Benutzergruppe hinzugefügt wird, hat der aktuelle Benutzer daher die Berechtigung, auf den Unix-Socket zuzugreifen und Docker-bezogene Befehle auszuführen.

sudo groupadd docker #Docker-Benutzergruppe hinzufügen sudo gpasswd -a $USER docker #Den angemeldeten Benutzer zur Docker-Benutzergruppe hinzufügen newgrp docker #Benutzergruppe aktualisieren

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:
  • So erhalten Sie ein dauerhaftes kostenloses SSL-Zertifikat von Let’s Encrypt in Docker
  • Docker-Lösung zum Anmelden ohne Root-Rechte
  • So ändern Sie das Root-Passwort von MySQL in Docker
  • So ändern Sie das Root-Passwort in einem Container mit Docker
  • Docker CP kopiert Dateien und gibt den Container ein
  • Docker verwendet Root, um in den Container zu gelangen
  • Lösung für den Docker-Container, der keine Schreibberechtigung für das Host-Verzeichnis hat
  • So fügen Sie Docker ein Zertifikat hinzu

<<:  Teilen Sie einige ungewöhnliche, aber nützliche JS-Techniken

>>:  Eine kurze Erläuterung der HTML-Tabellen-Tags

Artikel empfehlen

Zusammenfassung der Methoden zur Änderung des Git-Commit-Protokolls

Fall 1: Letzte Übermittlung und kein Push Führen ...

Implementierung eines einfachen Karussells auf Basis von JavaScript

In diesem Artikel wird der spezifische JavaScript...

Detaillierte Erklärung, wie Tomcat asynchrone Servlets implementiert

Vorwort Durch meine vorherige Tomcat-Artikelserie...

Zusammenfassung der Methoden zum Einbinden von Dateiinhalten in HTML-Dateien

Im Forum fragen Internetnutzer oft: „Kann ich den...

Lösung für das Problem der adaptiven Höhe und Breite der CSS-Anzeigetabelle

Definition und Verwendung Die Anzeigeeigenschaft ...

Rückblick auf die besten Webdesign-Arbeiten 2012 [Teil 1]

Zum Beginn des neuen Jahres möchte ich meinen Fre...

js, um einen einfachen Drag-Effekt zu erzielen

In diesem Artikel wird der spezifische Code von j...

Beispiel zum Ändern der inländischen Quelle in Ubuntu 18.04

Die eigene Quelle von Ubuntu stammt aus China, da...