Soll ich privilegierte Docker -Container führen?

Soll ich privilegierte Docker -Container führen?
Docker -Container sind die Hauptkomponente der Docker -Plattform, mit der Entwickler das Programm in virtualisierter Laufzeitumgebung erstellen und bereitstellen können. Sie werden von Docker Images verwaltet und unterrichtet. Der Docker -Container verkauft das Projekt und alle seine Abhängigkeiten. Docker -Container können im privilegierten Modus ausführbar sein, einer leistungsstarken Funktion der Docker -Plattform, mit der Programmierer Container mit Root -Zugriff ausführen können, was bedeutet, dass Container auf vollständige Host -Berechtigungen zugreifen können

Dieser Blog erklärt:

  • Sollten Sie privilegierte Docker -Container ausführen?
  • So führen Sie den Docker -Container im privilegierten Modus aus?

Sollten Sie privilegierte Docker -Container ausführen?

Das Ausführen von Containern im privilegierten Modus wird nicht empfohlen, da es riskant ist. Wie der privilegierte Modus hat der Stammcontainer als Stammbenutzer des Hosts voll und ganz zugreifen und vermeiden Sie alle Überprüfungen. Ein weiterer Grund ist, dass das System ständig in Gefahr ist. Für einige Situationen ist jedoch der privilegierte Container erforderlich.

So führen Sie einen privilegierten Docker -Container aus?

Um die Docker -Container in einem privilegierten Modus auszuführen, um Host -Berechtigungen zu gewähren, befolgen Sie die angegebenen Anweisungen.

Schritt 1: Erstellen Sie Dockerfile

Öffnen Sie zunächst den Visual Studio -Code -Editor und erstellen Sie eine neue Dockerfile. Fügen Sie danach den folgenden Code in “ein“Dockerfile" Wie nachfolgend dargestellt. Diese Anweisungen führen das einfache Golang -Programm auf dem Server aus:

Von golang: 1.8 als Erbauer
WorkDir/Go/SRC/App
Hauptkopie.gehen .
Run Go Build -o -Webserver .
CMD ["./Webserver "]

Schritt 2: Programmdatei erstellen

Als nächstes erstellen Sie eine “hauptsächlich.gehenDatei und fügen Sie den folgenden Golang -Code in die Datei ein und fügen Sie sie ein. Dadurch wird das angezeigtHallo! Willkommen bei LinuxHint Tutorial”:

Paket Main
importieren (
"fmt"
"Protokoll"
"net/http"
)
Funchandler (W HTTP.Antwortschreiber, r *http.Anfrage)
fmt.Fprintf (w, "Hallo! Willkommen bei LinuxHint Tutorial ")

funcmain ()
http.Handlefunc ("/", Handler)
Protokoll.Tödlich (http.Hörenserve ("0.0.0.0: 8080 ", nil)))

Schritt 3: Docker -Bild erstellen

Erstellen Sie danach das neue Docker -Bild mit dem angegebenen Befehl. Der "-TDas Flag wird verwendet, um das Tag oder den Namen des Docker -Bildes anzugeben:

$ docker bauen -t golang: neuestes .

Schritt 4: Docker -Container im privilegierten Modus ausführen

Führen Sie als nächstes den Docker -Container im privilegierten Modus aus, indem Sie das neu erstellte Bild zusammen mit dem “ausführen-privilegiert" Möglichkeit. Hier das "-DDie Option wird verwendet, um den Container im Hintergrund auszuführen, und die “-PDie Option wird verwendet, um die Portnummer für den lokalen Host anzugeben:

$ docker run -privilegiert -d -p 8080: 8080 Golang

Dann navigieren Sie zum "Localhost: 8080”Um zu überprüfen, ob die Anwendung ausgeführt wird oder nicht:


Es kann beobachtet werden, dass wir das Programm erfolgreich bereitgestellt haben und den Container im privilegierten Modus ausführen.

Schritt 5: Listen Sie Docker -Container auf

Listen Sie alle Container mit Hilfe der aufDocker PSBefehl zusammen mit dem “-A" Möglichkeit:

$ docker ps -a

Beachten Sie die Container -ID, um zu überprüfen, ob sie im privilegierten Modus ausgeführt wird oder nicht:

Schritt 6: Der Container wird im privilegierten Modus ausgeführt

Um zu überprüfen, ob der Container im privilegierten Modus ausgeführt wird oder nicht, verwenden Sie die “Docker inspizierenBefehl zusammen mit dem genannten Format und kopierten Container -ID:

$ docker inspect -format = '.Hostconfig.Privilegiert 'b46571b87efd

Der "WAHRAusgabe bedeutet, dass der Container im privilegierten Modus ausgeführt wird:

Führen Sie erneut den angegebenen Befehl mit einer anderen Container -ID aus:

$ docker inspect -format = '.Hostconfig.Privilegiert 'd3187ab39ee9

Hier können Sie das sehen “FALSCHAusgabe, der den Container mit einer angegebenen ID angibt, wird im privilegierten Modus nicht ausgeführt:


Wir haben besprochen, ob Benutzer den Docker -Container im privilegierten Modus ausführen sollten.

Abschluss

Nein, es wird nicht empfohlen, Container im privilegierten Modus auszuführen, da es ein Sicherheitsrisiko erzeugt. Container mit Root Access haben vollständige Berechtigungen als Root -Zugriff des Hosts und vermeiden alle Überprüfungen. Verwenden Sie den Docker -Container mit dem privilegierten Modus, um die “zu verwendenDocker Run -privilegiert" Befehl. Diese Beschreibung hat darüber ausgearbeitet, ob Sie privilegierte Docker-Container ausführen sollten.