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

Vue implementiert die browserseitige Code-Scan-Funktion

Hintergrund Vor nicht allzu langer Zeit habe ich ...

Ideen und Codes zur Realisierung des Lupeneffekts in js

In diesem Artikelbeispiel wird der spezifische Co...

Tipps zum Schreiben prägnanter React-Komponenten

Inhaltsverzeichnis Vermeiden Sie die Verwendung d...

Der Prozess der schnellen Konvertierung eines MySQL-Left-Joins in einen Inner-Join

Während des täglichen Optimierungsprozesses stell...

Einführung in das Enctype-Attribut des Form-Tags und seine Anwendungsbeispiele

Enctype: Gibt den Kodierungstyp an, der vom Browse...

Lösung für den Absturz der Grafikkarte auf Linux-Servern

Wenn die Auflösung der Anmeldeoberfläche besonder...

Holen Sie sich die IP und den Hostnamen aller Hosts auf Zabbix

zabbix Zabbix ([`zæbiks]) ist eine Open-Source-Lö...

Erläuterung des MySQL-Nicht-Null-Einschränkungsfalls

Inhaltsverzeichnis Legen Sie beim Erstellen einer...

Implementierungsschritte für die Docker-Bereitstellung lnmp-wordpress

Inhaltsverzeichnis 1. Experimentelle Umgebung 2. ...

Implementieren einer benutzerdefinierten Bildlaufleiste mit nativem JS

In diesem Artikelbeispiel wird der spezifische JS...

Einrichten von VMware vSphere in VMware Workstation (Grafisches Tutorial)

VMware vSphere ist die branchenführende und zuver...