Doker bez rootowania

Doker Bez Rootowania



Docker to jedno z najpotężniejszych i najbardziej wpływowych narzędzi do tworzenia i wdrażania nowoczesnych aplikacji. Jako programiści używamy go na naszych lokalnych komputerach, aby w ciągu kilku sekund szybko skonfigurować i skonfigurować środowiska odpowiadające potrzebom naszych aplikacji.

Jednak podczas pracy w Dockerze możemy napotkać przypadki, w których będziemy musieli utworzyć i używać zasobów Dockera, ale nie mamy uprawnień administratora.

A może chcesz zezwolić wielu użytkownikom w danym systemie na dostęp do Dockera i korzystanie z niego bez udzielania uprawnień roota wszystkim użytkownikom.







W tym samouczku dowiemy się o Dockerze bez rootowania, co to znaczy, jak działa i jak możemy go używać, aby umożliwić użytkownikom bez dostępu roota korzystanie z Dockera i powiązanych z nim usług.



Co to jest Docker bez rootowania?

Domyślnie po zainstalowaniu Dockera demon Docker i jego narzędzia wymagają uprawnień roota w systemie hosta. Może to znacząco skutkować zagrożeniem bezpieczeństwa, jeśli Docker zostanie naruszony, co może zapewnić atakującemu dostęp do roota.



Rootless Docker to funkcja, która pozwala nam używać i uruchamiać demona Docker i powiązane z nim kontenery bez uprawnień roota.





Jak to działa

Chociaż zagłębienie się w techniczne aspekty środowiska dokowanego bez rootowania może być trudne, poniżej znajduje się ogólny przegląd wyjaśniający, co robi i jak działa bez rootowania.

Przestrzenie nazw użytkowników – Jedną z istotnych funkcji wykorzystywanych przez okno dokowane bez rootowania są przestrzenie nazw użytkowników. Ta podstawowa cecha jądra Linuksa pozwala procesom mieć różne identyfikatory użytkowników i grup w przestrzeni nazw w porównaniu z zewnętrznymi identyfikatorami. Oznacza to, że proces może działać jako użytkownik root w swojej przestrzeni nazw, ale poza nią działa jako zwykły użytkownik.



Sieć – Kolejną cechą Dockera bez rootowania jest praca w sieci. Domyślnie zwykły demon dokujący opiera się na stosach sieciowych, takich jak iptables i mostach wymagających uprawnień roota.

Docker korzysta z takich funkcji jak slirp4netns, które udostępnia stos TCP/IP trybu użytkownika w oknie dokowanym bez rootowania. Dzięki temu Docker może uzyskać dostęp do sieci bez uprawnień roota w systemie hosta.

Składowanie – Kolejną istotną częścią okna dokowanego bez rootowania jest sterownik pamięci masowej. Docker domyślnie korzysta ze sterownika pamięci masowej overlay2, który jak można się domyślić wymaga uprawnień roota. Zamiast tego instancja dokująca bez rootowania korzysta ze sterownika Fuse-overlayfs. Sterownik ten oparty jest na nakładce FUSE fs, która pozwala na zamontowanie go bez uprawnień roota.

Powyższe to niektóre z podstawowych komponentów instancji dokera bez rootowania. Pamiętaj, że nie opisuje to pełnego działania okna dokowanego bez rootowania. Aby dowiedzieć się więcej, zapoznaj się z dokumentacją.

Docker bez rootowania – wymagania

Odejdźmy od teorii i dowiedzmy się, jak stworzyć i skonfigurować środowisko Docker bez rootowania.

Aby śledzić ten post, upewnij się, że masz następujące elementy:

  1. System oparty na systemie Linux z uprawnieniami roota.
  2. Dostęp do sieci.

Konfiguracja systemu za pomocą UIDMap

Przed instalacją i konfiguracją Dockera musimy zainstalować i skonfigurować system za pomocą narzędzia uidmap.

UIDMap pozwala nam zarządzać mapowaniami UID i GUI procesów w systemie Linux w zawartości przestrzeni nazw użytkowników. Pamiętasz, jak wspominaliśmy, że Docker bez rootowania wykorzystuje przestrzenie nazw użytkowników? To narzędzie pozwoli nam określić mapowania UID i GID oraz odpowiadające im przestrzenie nazw.

Zacznij od odświeżenia pakietów systemowych w następujący sposób:

$ sudo apt-get aktualizacja

Następnie zainstaluj narzędzie uidmap, jak pokazano:

$ sudo apt-get zainstaluj mapa uid -I

Instalowanie Dockera bez rootowania

Następnym krokiem jest przetworzenie i instalacja Dockera bez rootowania. Możemy to zrobić, wykonując proste kroki opisane poniżej:

Zacznij od pobrania skryptu instalatora okna dokowanego bez rootowania, korzystając z łącza pokazanego poniżej:

https://get.docker.com/rootless

Możesz użyć cURL lub WGET.

$ kędzior -sSL https: // get.docker.com / pozbawiony korzeni | cii

Pamiętaj, że nie możesz uruchomić powyższego polecenia jako użytkownik root.

Po zakończeniu instalacji edytuj plik .bashrc za pomocą ulubionego edytora tekstu:

$ nano .bashrc

Następnie dodaj następujące wpisy do pliku konfiguracyjnego bashrc:

eksport XDG_RUNTIME_DIR = / dom / Ubuntu / .doker / uruchomić

eksport ŚCIEŻKA = / dom / Ubuntu / kosz: $ŚCIEŻKA

eksport DOCKER_HOST =unix: /// dom / Ubuntu / .doker / uruchomić / skarpeta dokowana

Pamiętaj, aby zmienić użytkownika z „ubuntu” na użytkownika, dla którego chcesz zainstalować Docker. Wynik skryptu wyświetli zawartość do dodania do pliku .bashrc.

Zapisz zmiany i zamknij edytor.

W następnym kroku musimy zainicjować bezrootowego demona Dockera. Możemy to zrobić za pomocą systemctl, jak pokazano w poleceniu poniżej:

systemctl --ubuntu uruchom okno dokowane

Po uruchomieniu możesz używać poleceń Dockera do uruchamiania i konfigurowania kontenerów Docker.

Wniosek

W tym samouczku poznaliśmy funkcjonalność Dockera bez rootowania, jak to działa i jak możemy go skonfigurować w systemie Linux. Aby dowiedzieć się więcej, zapoznaj się z dokumentacją okna dokowanego bez rootowania.