Docker benötigt root-Berechtigungen zum Ausführen. Handbuch gibt Anweisungen zum Verwalten von Docker als Benutzer ohne Rootberechtigung, es fügt den Benutzer im Wesentlichen docker
Benutzergruppe hinzu, nach der ich Docker-Befehle mit sudo
ausführen kann. Kann jemand erklären, warum das funktioniert?Warum erlaubt das Hinzufügen eines Benutzers zur Andock-Benutzergruppe, dass Andockfenster nicht als Root ausgeführt wird?
Antwort
Sie müssen zwischen dem Befehlszeilenprogramm docker
und dem Hintergrunddämon dockerd
unterscheiden. Der Daemon läuft als root und ist verantwortlich für die Ausführung von Containern. Das Kommandozeilenwerkzeug docker
gibt dem Daemon Anweisungen, was zu tun ist. Diese Kommunikation erfolgt standardmäßig über den Unix-Socket /var/run/docker.sock
. sehen ein ls -l
ergibt
srw-rw---- 1 root docker 0 Aug 20 11:22 /var/run/docker.sock
Sie, dass ein Benutzer, die zur Gruppe gehört docker
der Lage ist, an die Steckdose zu schreiben und somit in der Lage ist, die Daemon Anweisungen zu geben, die mit root-Berechtigung ausgeführt werden kann.
können Sie configure auch der Daemon auf einem Netzwerk-Port statt zuzuhören. Ähnlich können Sie das Befehlszeilentool verwenden, um einen Remote-Docker-Dämon über die Umgebungsvariable DOCKER_HOST
zu verwenden. Auf diese Weise können Sie Docker-Dämonen auf Remote-Hosts Anweisungen geben.
Es gibt einen anderen Punkt, den man erwähnen sollte. Wenn Sie einen Benutzer mit sudo
zu einer Gruppe hinzufügen und dann andere Befehle mit sudo
ausführen, wird normalerweise sudo
nicht erneut zur Eingabe Ihres Kennworts aufgefordert, da es für einige Zeit im Cache gespeichert ist.
- 1. Wie schreibe ich eine Datei als root in einem Programm, das nicht als root ausgeführt wird?
- 2. Shell-Skript ausgeführt als root, wenn sie als aktuelle angemeldeten Benutzers ausführen soll
- 3. Warum wird das nicht ausgeführt, wenn der Block ausgeführt wird?
- 4. Wie wird Docker Image als Nicht-Root-Benutzer ausgeführt?
- 5. Warum wird das Programm nicht richtig ausgeführt?
- 6. Warum ist das in C# nicht erlaubt?
- 7. Das Hinzufügen eines Delegaten zur IBDesignable-Klasse führt dazu, dass die Benutzeroberfläche nicht gerendert wird
- 8. Warum erlaubt Chrome nicht, dass Web Worker in JavaScript ausgeführt wird?
- 9. Warum wird das FParsec-Beispiel nicht ausgeführt?
- 10. Warum wird das Ereignis nicht ausgeführt?
- 11. Warum wird die Eingabe des Benutzers nicht als richtig erkannt?
- 12. Warum wird ein Teil eines Bash-Arrays als Befehl ausgeführt?
- 13. Warum wird nicht empfohlen, Vscode als root auszuführen?
- 14. ActiveDirectoryMembershipProvider zur Validierung eines Benutzers
- 15. Hinzufügen eines Azure-Benutzers zur Ressourcengruppe mit nodejs
- 16. Warum ist das Ändern eines Attributs erlaubt?
- 17. Warum führt das Hinzufügen dieses Felds dazu, dass meine Abfrage langsam ausgeführt wird?
- 18. Wie überprüft man, ob Andockfenster ausgeführt wird oder nicht
- 19. MySQL: Erstellen eines Benutzers mit Root-Rechten
- 20. Warum wird Sonde nicht ausgeführt?
- 21. Buildroot nicht als root ausführen und will nicht als root
- 22. Wie wird das offizielle Tensorflow Docker Image als Nicht-Root-Benutzer ausgeführt?
- 23. Wie kann ich verhindern, dass Phusion Passenger als root ausgeführt wird?
- 24. Das Hinzufügen eines Bildes zu einer Arbeitsfläche erlaubt es nicht, Leinwand als Bild zu speichern
- 25. Warum wird DispatchQueue.main.async nicht ausgeführt?
- 26. Warum wird das * nicht als MathSymbol betrachtet?
- 27. Warum das Dienstprogramm gpseginstall ausgeführt wird aufgetreten Hostdatei_exkeys ist nicht verfügbar als Benutzer gpadmin?
- 28. Was ist am einfachsten in einem Shell-Skript, um sicherzustellen, dass es nicht als root ausgeführt wird?
- 29. Warum wird Wächter nicht ausgeführt?
- 30. Warum wird diese Methode ausgeführt, ohne dass sie aufgerufen wird?