Doker bez korijena

Doker Bez Korijena



Docker je jedan od najmoćnijih i najutjecajnijih alata za suvremeni razvoj i implementaciju aplikacija. Kao programeri, koristimo ga na našim lokalnim računalima za brzo postavljanje i konfiguraciju okruženja koja odgovaraju potrebama naše aplikacije u nekoliko sekundi.

Međutim, kada radimo u Dockeru, mogli bismo naići na slučajeve u kojima moramo stvoriti i koristiti Docker resurse, ali nemamo root pristup.

Ili možda želite dopustiti više korisnika na određenom sustavu da pristupe i koriste Docker bez davanja root dopuštenja svih korisnika.







U ovom vodiču naučit ćemo o Dockeru bez korijenskog pristupa, što to znači, kako funkcionira i kako ga možemo koristiti da korisnicima bez root pristupa omogućimo korištenje Dockera i njegovih povezanih usluga.



Što je Rootless Docker?

Prema zadanim postavkama, nakon što instalirate Docker, Docker demon i njegovi alati zahtijevaju root povlastice na glavnom sustavu. To može značajno rezultirati sigurnosnim rizikom ako je Docker ugrožen, što može dati root pristup napadaču.



Rootless Docker značajka je koja nam omogućuje korištenje i pokretanje Docker demona i pridruženih spremnika bez root dozvola.





Kako radi

Iako može biti izazovno uroniti u tehnički rad docker okruženja bez root-a, slijedi pregled na visokoj razini koji objašnjava što docker bez root-a radi i kako radi ispod haube.

Prostori imena korisnika – Jedna od značajnih značajki koju koristi rootless docker su prostori imena korisnika. Ova temeljna značajka Linux kernela omogućuje procesima da imaju različite ID-ove korisnika i grupa unutar imenskog prostora u usporedbi s vanjskim. To znači da se proces može izvoditi kao root korisnik unutar svog imenskog prostora, ali izvan toga, radi kao običan korisnik.



Umrežavanje – Sljedeća značajka rootless Dockera je umrežavanje. Prema zadanim postavkama, normalni docker demon oslanja se na mrežne skupove kao što su iptables i mostovi koji zahtijevaju root dozvole.

Docker iskorištava značajke kao što je slirp4netns, koji pruža TCP/IP stog u korisničkom načinu rada u dockeru bez root-a. Ovo Dockeru omogućuje pristup mreži bez root dopuštenja na glavnom sustavu.

Skladištenje – Sljedeći bitan dio dockera bez korijena je upravljački program za pohranu. Prema zadanim postavkama, Docker koristi upravljački program za pohranu overlay2, koji, kao što možete pretpostaviti, zahtijeva root dozvole. Umjesto toga, instanca dockera bez root-a koristi upravljački program fuse-overlayfs. Ovaj se upravljački program temelji na FUSE overlay fs, što nam omogućuje da ga montiramo bez root dozvola.

Gore su navedene neke od bitnih komponenti docker instance bez korijena. Imajte na umu da ovo ne istražuje kompletan rad dockera bez korijena. Razmotrite dokumentaciju da biste saznali više.

Rootless Docker – Zahtjevi

Krenimo od teorije i naučimo kako stvoriti i konfigurirati Docker okruženje bez root-a.

Da biste pratili ovaj post, provjerite imate li sljedeće:

  1. Sustav temeljen na Linuxu s root dozvolama.
  2. Pristup mreži.

Konfiguriranje sustava s UIDMap

Prije instaliranja i konfiguriranja Dockera, moramo instalirati i konfigurirati sustav pomoću uslužnog programa uidmap.

UIDMap nam omogućuje upravljanje UID i GUI mapiranjem procesa u Linux sustavu u sadržaju korisničkih imenskih prostora. Sjećate li se kad smo spomenuli da Docker bez korijena koristi prednosti korisničkih imenskih prostora? Ovaj alat će nam omogućiti da odredimo UID i GID mapiranja i njihove odgovarajuće prostore imena.

Započnite s osvježavanjem sistemskih paketa na sljedeći način:

$ sudo apt-get ažuriranje

Zatim instalirajte uslužni program uidmap kao što je prikazano:

$ sudo apt-get instalacija uidmap -i

Instaliranje Rootless Dockera

Sljedeći korak je obrada i instalacija Dockera bez root-a. To možemo učiniti slijedeći jednostavne korake navedene u nastavku:

Započnite s preuzimanjem skripte za instalaciju dockera bez root-a s poveznice prikazane u nastavku:

https://get.docker.com/rootless

Možete koristiti cURL ili WGET.

$ kovrča -sSL https: // get.docker.com / bez korijena | sh

Imajte na umu da gornju naredbu ne možete pokrenuti kao root korisnik.

Kada instalacija završi, uredite svoju .bashrc datoteku koristeći svoj omiljeni uređivač teksta:

$ nano .bashrc

Zatim dodajte sljedeće unose u konfiguracijsku datoteku bashrc:

izvoz XDG_RUNTIME_DIR = / Dom / ubuntu / .lučki radnik / trčanje

izvoz STAZA = / Dom / ubuntu / spremnik: $PATH

izvoz DOCKER_HOST =unix: /// Dom / ubuntu / .lučki radnik / trčanje / doker.čarapa

Obavezno promijenite korisnika iz 'ubuntu' u korisnika za kojeg želite instalirati Docker. Izlaz skripte će vam dati sadržaj za dodavanje u .bashrc datoteku.

Spremite promjene i zatvorite uređivač.

U sljedećem koraku moramo pokrenuti Docker demon bez root-a. To možemo učiniti koristeći systemctl, kao što je prikazano u naredbi ispod:

systemctl --ubuntu pokreni docker

Nakon pokretanja, možete koristiti Docker naredbe za pokretanje i konfiguriranje Docker spremnika.

Zaključak

U ovom vodiču naučili smo funkcionalnost Dockera bez korijenskog pristupa, kako radi i kako ga možemo konfigurirati na Linux sustavu. Slobodno provjerite rootless docker dokumentaciju da biste saznali više.