Ten blog wyjaśni:
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.