Dieser Blog erklärt:
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.