Docker bez saknēm

Docker Bez Saknem



Docker ir viens no jaudīgākajiem un ietekmīgākajiem rīkiem mūsdienu lietojumprogrammu izstrādei un izvietošanai. Kā izstrādātāji mēs to izmantojam savās vietējās iekārtās, lai dažu sekunžu laikā ātri iestatītu un konfigurētu vidi, kas atbilst mūsu lietojumprogrammu vajadzībām.

Tomēr, strādājot programmā Docker, mēs varam saskarties ar gadījumiem, kad mums ir jāizveido un jāizmanto Docker resursi, bet mums nav root piekļuves.

Vai varbūt vēlaties ļaut vairākiem lietotājiem noteiktā sistēmā piekļūt un izmantot Docker, nedodot visu lietotāju saknes atļaujas.







Šajā apmācībā mēs uzzināsim par bezsakņu Docker, ko tas nozīmē, kā tas darbojas un kā mēs varam to izmantot, lai ļautu lietotājiem bez root piekļuves izmantot Docker un ar to saistītos pakalpojumus.



Kas ir bezsakņu dokeris?

Pēc noklusējuma, kad esat instalējis Docker, Docker dēmonam un tā rīkiem ir nepieciešamas resursdatora sistēmas root tiesības. Tas var radīt ievērojamu drošības risku, ja tiek uzlauzts Docker, kas var piešķirt uzbrucējam root piekļuvi.



Rootless Docker ir līdzeklis, kas ļauj mums izmantot un palaist Docker dēmonu un saistītos konteinerus bez root atļaujām.





Kā tas strādā

Lai gan var būt sarežģīti iedziļināties bezsakņu dokeru vides tehniskajā darbībā, tālāk ir sniegts augsta līmeņa pārskats, kas izskaidro, ko dara bezsakņu dokeris un kā tas darbojas zem pārsega.

Lietotāja vārdu telpas - Viena no nozīmīgajām funkcijām, ko izmanto bezsakņu dokeris, ir lietotāju vārdu telpas. Šī Linux kodola pamatīpašība ļauj procesiem izmantot dažādus lietotāju un grupu ID nosaukumvietā, salīdzinot ar ārpusi. Tas nozīmē, ka process var darboties kā saknes lietotājs savā nosaukumvietā, bet ārpus tās tas darbojas kā parasts lietotājs.



Tīklošana – Nākamā bezsakņu Docker funkcija ir tīklošana. Pēc noklusējuma parastais docker dēmons paļaujas uz tīkla skursteņiem, piemēram, iptables un tiltiem, kam nepieciešamas saknes atļaujas.

Docker izmanto tādas funkcijas kā slirp4netns, kas nodrošina lietotāja režīma TCP/IP steku bezsakņu dokā. Tādējādi Docker var piekļūt tīklam bez resursdatora sistēmas root atļaujas.

Uzglabāšana – Nākamā bezsakņu dokera sastāvdaļa ir krātuves draiveris. Pēc noklusējuma Docker izmanto overlay2 krātuves draiveri, kuram, kā jau nojaušat, ir nepieciešamas root atļaujas. Tā vietā bezsakņu doka instancē tiek izmantots fuse-overlayfs draiveris. Šis draiveris ir balstīts uz FUSE pārklājumu fs, kas ļauj mums to uzstādīt bez root atļaujām.

Iepriekš minētie ir daži no bezsakņu dokera instances būtiskiem komponentiem. Atcerieties, ka tas neizpēta visu bezsakņu dokera darbību. Apsveriet dokumentāciju, lai uzzinātu vairāk.

Rootless Docker — prasības

Ļaujiet mums pāriet no teorijas un uzzināt, kā izveidot un konfigurēt bezsakņu Docker vidi.

Lai sekotu līdzi šai ziņai, pārliecinieties, ka jums ir:

  1. Uz Linux balstīta sistēma ar root atļaujām.
  2. Piekļuve tīklam.

Sistēmas konfigurēšana, izmantojot UIDMap

Pirms Docker instalēšanas un konfigurēšanas mums ir jāinstalē un jākonfigurē sistēma ar uidmap utilītu.

UIDMap ļauj mums pārvaldīt Linux sistēmas procesu UID un GUI kartējumus lietotāju nosaukumvietu saturā. Atcerieties, kad mēs minējām, ka bezsakņu Docker izmanto lietotāju vārdu telpas? Šis rīks ļaus mums norādīt UID un GID kartējumus un to atbilstošās nosaukumvietas.

Sāciet ar sistēmas pakotņu atsvaidzināšanu šādi:

$ sudo apt-get atjauninājumu

Pēc tam instalējiet uidmap utilītu, kā parādīts attēlā:

$ sudo apt-get install uidmap -un

Rootless Docker instalēšana

Nākamais solis ir apstrādāt un instalēt bezsakņu Docker. Mēs to varam izdarīt, veicot tālāk norādītās vienkāršās darbības.

Sāciet, lejupielādējot bezsakņu docker instalēšanas skriptu no tālāk redzamās saites:

https://get.docker.com/rootless

Varat izmantot cURL vai WGET.

$ čokurošanās -sSL https: // get.docker.com / bez saknēm | sh

Ņemiet vērā, ka iepriekš minēto komandu nevar palaist kā root lietotājs.

Kad instalēšana ir pabeigta, rediģējiet savu .bashrc failu, izmantojot savu iecienītāko teksta redaktoru:

$ nano .bashrc

Pēc tam pievienojiet bashrc konfigurācijas failam šādus ierakstus:

eksportēt XDG_RUNTIME_DIR = / mājas / ubuntu / .docker / palaist

eksportēt CEĻŠ = / mājas / ubuntu / tvertne: $PATH

eksportēt DOCKER_HOST =unix: /// mājas / ubuntu / .docker / palaist / dokeris.zeķe

Nomainiet lietotāju no “ubuntu” uz lietotāju, kuram vēlaties instalēt Docker. Skripta izvade sniegs saturu, ko pievienot .bashrc failam.

Saglabājiet izmaiņas un aizveriet redaktoru.

Nākamajā solī mums ir jāaktivizē bezsakņu Docker dēmons. Mēs to varam izdarīt, izmantojot systemctl, kā parādīts tālāk esošajā komandā:

systemctl -- ubuntu startēt doku

Pēc palaišanas varat izmantot Docker komandas, lai palaistu un konfigurētu Docker konteinerus.

Secinājums

Šajā apmācībā mēs uzzinājām par bezsakņu Docker funkcionalitāti, kā tas darbojas un kā mēs varam to konfigurēt Linux sistēmā. Lai uzzinātu vairāk, pārbaudiet bezsakņu doka dokumentāciju.