Skal jeg kjøre privilegerte Docker -containere?

Skal jeg kjøre privilegerte Docker -containere?
Docker -containere er hovedkomponenten i Docker -plattformen som gjør det mulig for utviklere å bygge og distribuere programmet i virtualisert kjøretidsmiljø. De administreres og instrueres av Docker -bilder. Docker -beholderen omslutter prosjektet og alle dets avhengigheter. Docker -containere kan være kjørbare i privilegert modus, en kraftig funksjon av Docker -plattformen som gjør det mulig for programmerere å kjøre containere med rottilgang, noe som betyr at containere kan få tilgang til full vertsrettigheter

Denne bloggen vil forklare:

  • Skal du kjøre privilegerte Docker -containere?
  • Hvordan du kjører docker container i privilegert modus?

Skal du kjøre privilegerte Docker -containere?

Kjørebeholdere i privilegert modus anbefales ikke fordi det er risikabelt. I likhet med privilegert modus, vil rotbeholderen ha full tilgang som vertens rotbruker og unngå alle sjekker. En annen grunn er at hvis vertens maskinvareressurser og kjernen noen gang blir utsatt for en ekstern angriper, kan systemet hele tiden være i fare. Å kjøre den privilegerte beholderen er imidlertid nødvendig for noen situasjoner, for eksempel å kjøre Docker inne i en annen Docker -plattform.

Hvordan kjøre en privilegert Docker -beholder?

For å kjøre Docker -containerne i en privilegert modus for å gi vertsrettigheter, følg de medfølgende instruksjonene.

Trinn 1: Lag dockerfile

Åpne først Visual Studio Code Editor og opprette en ny Dockerfile. Etter det, lim inn følgende kode i “Dockerfile" som vist under. Disse instruksjonene vil utføre det enkle Golang -programmet på serveren:

Fra Golang: 1.8 som byggherre
Workdir/go/src/app
Kopier Main.gå .
Run Go Build -o Webserver .
Cmd ["./Internett server"]

Trinn 2: Opprett programfil

Neste, lage en “hoved-.gå”Fil og lim inn følgende Golang -kode i filen. Dette vil vise “Hallo! Velkommen til Linuxhint Tutorial”:

Pakkehoved
import (
"FMT"
"Logg"
"Nett/http"
)
Funchandler (W http.ResponseWriter, R *http.Be om)
fmt.Fprintf (w, "Hei! Velkommen til Linuxhint Tutorial ")

FUNCMAIN ()
http.HandleFunc ("/", handler)
Logg.Fatal (http.Listenandserve ("0.0.0.0: 8080 ", null))

Trinn 3: Bygg Docker -bilde

Etter det, bygg det nye Docker -bildet ved hjelp av den oppgitte kommandoen. “-t”Flagg brukes til å spesifisere taggen eller navnet på Docker -bildet:

$ docker build -t golang: siste .

Trinn 4: Kjør Docker Container i privilegert modus

Deretter kjører du Docker -beholderen i privilegert modus ved å utføre det nyopprettede bildet sammen med "-privilegert”Alternativ. Her, "-d”Alternativ brukes til å kjøre beholderen i bakgrunnen, og“-p”Alternativet brukes til å spesifisere portnummeret for den lokale verten:

$ Docker Run -Privileged -D -P 8080: 8080 Golang

Naviger deretter til "Localhost: 8080”For å sjekke om applikasjonen kjører eller ikke:


Det kan observeres at vi har distribuert programmet og kjører beholderen i privilegert modus.

Trinn 5: Liste ned Docker -containere

Liste ned alle containere ved hjelp av "Docker Ps”Kommando sammen med“-en”Alternativ:

$ docker ps -a

Legg merke til beholder -IDen for å sjekke om den kjører i privilegert modus eller ikke:

Trinn 6: Kontroller beholderen kjører i privilegert modus

For å sjekke om beholderen kjører i privilegert modus eller ikke, bruk "Docker inspiser”Kommando sammen med nevnt format og kopiert container -ID:

$ docker inspeksjon -format = '.HostConfig.Privilegert 'B46571B87EFD

ekte”Utgang betyr at beholderen kjører i privilegert modus:

Igjen, utfør den oppgitte kommandoen med en annen container -ID:

$ docker inspeksjon -format = '.HostConfig.Privilegert 'd3187ab39ee9

Her kan du se “falsk”Utgang som indikerer beholderen som har en spesifisert ID, kjører ikke i privilegert modus:


Vi har diskutert om brukere skal utføre Docker -beholderen i privilegert modus.

Konklusjon

Nei, det anbefales ikke å kjøre containere i privilegert modus, da det skaper en sikkerhetsrisiko. Containere med rottilgang har fulle privilegier som vertens rottilgang og vil unngå alle sjekker. For å kjøre Docker -beholderen med privilegert modus, bruk "Docker Run -Privileged”Kommando. Denne oppskrivningen har utdypet om du skal kjøre privilegerte Docker-containere.