Docker Exec in Container als Root

Docker Exec in Container als Root
Docker ist ein leistungsstarkes Containerisierungstool, mit dem Benutzer isolierte und eigenständige Anwendungen erstellen können. Docker -Container tragen das Basisbetriebssystem, die Anwendungen und alle erforderlichen Pakete. In einigen Fällen müssen wir daher Zugriff auf die Systemschale haben, Befehle ausführen und benutzerdefinierte Konfigurationen durchführen. Glücklicherweise bietet Docker uns die Funktionalität, Befehle beim Ausführen von Containern auszuführen.

Dieses Tutorial zielt darauf ab, Ihnen zu zeigen.

Grundnutzung

Die Arbeit mit Docker Exec ist sehr einfach. Wir rufen zunächst den Befehl Docker Exec an, gefolgt vom Containernamen oder der Ausführung des Containernamens oder des Befehls.

Um den Echo -Befehl in Container Debian auszuführen, verwenden wir den Befehl als:

$ docker Exec Debian echo Hallo

Der Befehl erzeugt eine Hülle des Debian -Containers und führt den Echo -Befehl aus. Eine Beispielausgabe erscheint unten:

Verwenden Sie den Befehl, um den Namen oder eine ID der laufenden Container zu erhalten:

$ docker ps

Docker Exec -Optionen

Der Befehl docker exec unterstützt verschiedene Optionen, um die Funktionalität der Befehle zu ändern. Es unterstützt die folgenden Funktionen.

  • -I - Diese Option hält das Stdin.
  • -t - laichen einen Pseudo Tty
  • -u - Gibt den Benutzernamen oder die UID an.
  • -W - Arbeitsverzeichnis
  • -P - Zuweist der Befehl erweiterte Privilegien.
  • -d - läuft im abgelösten Modus.
  • -E - setzt Umgebungsvariablen.

Docker Exec sh

In den meisten Fällen benötigen wir eine Shell -Instanz in den Container, um Rohbefehle auszuführen. Dazu verwenden wir den Befehl docker Exec.

$ docker Exec Debian -i -t /bin /bash

Der obige Befehl startet eine interaktive Shell. Es ist gut, sicherzustellen, dass die ausführbare Bash -Datei vor dem laufenden Befehl existiert.

Wenn Bash oder eine Shell, die Sie verwenden möchten, nicht verfügbar ist, verwenden Sie SH in dem folgenden Befehl:

$ docker exec -it /bin /sh

Wie Sie sehen können, haben Sie eine interaktive Shell -Sitzung, in der Sie Befehle ausführen können.

Exec als root

Verwenden Sie die Option -U, um den Befehl als Root als Root auszuführen. Die Option erfordert einen Benutzernamen oder eine UID des Benutzers. Zum Beispiel:

$ docker Exec -U 0 Debian Whoami
$ root

Im obigen Befehl verwenden wir die UID des Stammbenutzers, um den Befehl whoami als root auszuführen.

Verwenden Sie den Befehl, um den Benutzernamen anstelle der Benutzer -UID zu verwenden:

$ docker Exec -u Root Debian Whoami
$ root

Der obige Befehl kann helfen, wenn Sie auf Aufgaben beheben oder Aufgaben ausführen möchten, die erhöhte Privilegien erfordern möchten.

Abschluss

Das ist alles für den Befehl Docker Exec.

Wir haben mit Docker Exec über die Ausführung von Befehlen in Ihren laufenden Containern besprochen und eine Shell -Sitzung hervorgebracht. Schließlich haben wir behandelt, wie man mit Benutzername und UID Befehle als Root als Root ausführt.