Czy powinienem uruchomić uprzywilejowane kontenery Docker?

Czy powinienem uruchomić uprzywilejowane kontenery Docker?
Kontenery Docker są głównym elementem platformy Docker, która umożliwia programistom budowę i wdrażanie programu w wirtualizowanym środowisku czasu wykonywania. Są zarządzane i instruowane przez obrazy Docker. Kontener Docker zawiera projekt i wszystkie jego zależności. Kontenery Docker mogą być wykonywalne w trybie uprzywilejowanym, potężnej funkcji platformy Docker, która umożliwia programistom uruchamianie kontenerów z dostępem do root, co oznacza, że ​​kontenery mogą uzyskać dostęp do pełnych uprawnień hosta

Ten blog wyjaśni:

  • Jeśli prowadzisz uprzywilejowane kontenery Docker?
  • Jak uruchomić kontener Docker w trybie uprzywilejowanym?

Jeśli prowadzisz uprzywilejowane kontenery Docker?

Uruchomienie kontenerów w trybie uprzywilejowanym nie jest zalecane, ponieważ jest to ryzykowne. Podobnie jak tryb uprzywilejowany, kontener root będzie miał pełny dostęp jako użytkownik hosta i uniknie wszystkich czeków. Innym powodem jest to, że jeśli zasoby sprzętowe hosta i jądro będą kiedykolwiek narażone na zewnętrznego atakującego, system może być stale zagrożony. Jednak uruchomienie uprzywilejowanego kontenera jest niezbędne w niektórych sytuacjach, takich jak uruchomienie Dockera w innej platformie Docker.

Jak uruchomić uprzywilejowany kontener Docker?

Aby uruchomić kontenery Docker w trybie uprzywilejowanym, aby przyznać uprawnienia hosta, postępuj zgodnie z podanymi instrukcjami.

Krok 1: Utwórz DockerFile

Najpierw otwórz edytor kodu Visual Studio i utwórz nowy PLIFILE. Następnie wklej następujący kod do „Dockerfile" jak pokazano niżej. Instrukcje te wykonają prosty program Golang na serwerze:

Od Golang: 1.8 jako budowniczy
WorkDir/Go/Src/App
Kopiuj główny.Iść .
RUN GO BUDLE -O WEBSERVER .
CMD [”./serwer internetowy"]

Krok 2: Utwórz plik programu

Następnie stwórz „główny.Iść”Plik i wklej następujący kod Golanga w pliku. To wyświetli „Cześć! Witamy w samouczku Linuxhint”:

Pakiet Main
import (
„FMT”
"dziennik"
„net/http”
)
Funchandler (w http.ResponseWriter, r *http.Wniosek)
fmt.Fprintf (w, „Witam! Witamy w samouczku Linuxhint ”)

funcMain ()
http.Hevingfunc („/”, obsługa)
dziennik.Fatalny (HTTP.Słuchaj i serwera ("0.0.0.0: 8080 ", zero))

Krok 3: Zbuduj obraz dokera

Następnie zbuduj nowy obraz Docker za pomocą dostarczonego polecenia. „„-T„Flaga jest wykorzystywana do określenia znacznika lub nazwy obrazu Docker:

$ Docker Build -t Golang: najnowszy .

Krok 4: Uruchom kontener Docker w trybie uprzywilejowanym

Następnie uruchom kontener Docker w trybie uprzywilejowanym, wykonując nowo utworzony obraz wraz z „-uprzywilejowany" opcja. Tutaj "-D„Opcja służy do uruchamiania pojemnika w tle i„-P„Opcja jest wykorzystywana do określenia numeru portu dla lokalnego hosta:

$ Docker Run --privileged -d -p 8080: 8080 Golang

Następnie przejdź do „Localhost: 8080„Aby sprawdzić, czy aplikacja działa, czy nie:


Można zauważyć, że pomyślnie wdrożyliśmy program i uruchomić kontener w trybie uprzywilejowanym.

Krok 5: Wymień pojemniki Docker

Wymień wszystkie pojemniki za pomocą „Docker Ps”Polecenie wraz z„-A" opcja:

$ Docker PS -A

Zwróć uwagę na identyfikator kontenera, aby sprawdzić, czy działa w trybie uprzywilejowanym, czy nie:

Krok 6: Sprawdź kontener działa w trybie uprzywilejowanym

Aby sprawdzić, czy kontener działa w trybie uprzywilejowanym, czy nie, użyj „Docker Inspect”Polecenie wraz z wymienionym formatem i skopiowanym identyfikatorem kontenera:

$ Docker Inspect - -FORMAT = '.Hostconfig.Uprzywilejowany 'B46571B87EFD

„„PRAWDA”Wyjście oznacza, że ​​kontener działa w trybie uprzywilejowanym:

Ponownie wykonaj dostarczone polecenie z innym identyfikatorem kontenera:

$ Docker Inspect - -FORMAT = '.Hostconfig.Uprzywilejowany 'D3187AB39EE9

Tutaj możesz zobaczyć „FAŁSZ”Wyjście wskazujące kontener, który ma określony identyfikator, nie działa w trybie uprzywilejowanym:


Omówiliśmy, czy użytkownicy powinni wykonać kontener Docker w trybie uprzywilejowanym.

Wniosek

Nie, nie zaleca się uruchamiania kontenerów w trybie uprzywilejowanym, ponieważ stwarza one ryzyko bezpieczeństwa. Kontenery z dostępem do korzeni mają pełne uprawnienia jako dostęp do roota hosta i unikną wszystkich czeków. Aby uruchomić kontener Docker w trybie uprzywilejowanym, użyj „Docker Run -priviled" Komenda. Ten zapis opracował, czy powinieneś uruchomić uprzywilejowane kontenery Docker.