Dokeris be šaknų

Dokeris Be Saknu



„Docker“ yra vienas galingiausių ir įtakingiausių šiuolaikinių programų kūrimo ir diegimo įrankių. Kaip kūrėjai, mes naudojame jį savo vietiniuose įrenginiuose, kad per kelias sekundes greitai nustatytume ir sukonfigūruotume aplinkas, atitinkančias mūsų taikomųjų programų poreikius.

Tačiau dirbdami „Docker“ galime susidurti su atvejais, kai turime kurti ir naudoti „Docker“ išteklius, bet neturime root prieigos.

Arba galbūt norite leisti keliems naudotojams tam tikroje sistemoje pasiekti ir naudoti „Docker“, nesuteikdami visų naudotojų šakninio leidimo.







Šiame vadove sužinosime apie „Docker“ be šaknų, ką tai reiškia, kaip jis veikia ir kaip galime jį naudoti, kad naudotojai, neturintys root prieigos, galėtų naudotis „Docker“ ir su juo susijusiomis paslaugomis.



Kas yra bešaknis dokeris?

Pagal numatytuosius nustatymus, kai įdiegiate „Docker“, „Docker“ demonui ir jo įrankiams reikia pagrindinės sistemos root teisių. Tai gali sukelti didelę saugumo riziką, jei „Docker“ bus pažeista, o tai gali suteikti pagrindinę prieigą užpuolikui.



„Rootless Docker“ yra funkcija, leidžianti mums naudoti ir paleisti „Docker“ demoną ir susijusius konteinerius be root teisių.





Kaip tai veikia

Nors gali būti sudėtinga pasinerti į techninius bešaknių dokininkų aplinkos darbus, toliau pateikiama aukšto lygio apžvalga, paaiškinanti, ką veikia bešaknis dokininkas ir kaip jis veikia po gaubtu.

Vartotojo vardų erdvės – Viena iš svarbių funkcijų, kurias naudoja bešaknis dokeris, yra vartotojo vardų erdvės. Ši pagrindinė Linux branduolio savybė leidžia procesams turėti skirtingus vartotojo ir grupės ID vardų erdvėje, palyginti su išorėje. Tai reiškia, kad procesas gali veikti kaip root naudotojas savo vardų erdvėje, tačiau už jos ribų jis veikia kaip įprastas vartotojas.



Tinklo kūrimas – Kita bešaknių „Docker“ savybė yra tinklų kūrimas. Pagal numatytuosius nustatymus įprastas docker demonas remiasi tinklo stekelėmis, pvz., iptables ir tiltais, kuriems reikia šakninių teisių.

„Docker“ naudojasi tokiomis funkcijomis kaip „slirp4netns“, kuri suteikia vartotojo režimo TCP/IP krūvą bešakniame dokeryje. Tai leidžia „Docker“ pasiekti tinklą be pagrindinio kompiuterio leidimo.

Sandėliavimas – Kita svarbi bešaknio dokerio dalis yra saugojimo tvarkyklė. Pagal numatytuosius nustatymus „Docker“ naudoja „overlay2“ saugyklos tvarkyklę, kuriai, kaip galite atspėti, reikia root teisių. Vietoj to, bešaknis dokerio egzempliorius naudoja saugiklio perdangos tvarkyklę. Ši tvarkyklė yra pagrįsta FUSE perdanga fs, kuri leidžia mums ją prijungti be root teisių.

Aukščiau yra keletas esminių bešaknių docker egzempliorių komponentų. Atminkite, kad tai nenagrinėja viso bešaknio dokininko veikimo. Norėdami sužinoti daugiau, peržiūrėkite dokumentus.

„Rootless Docker“ – reikalavimai

Pereikime nuo teorijos ir sužinokime, kaip sukurti ir konfigūruoti „Docker“ aplinką be šaknų.

Jei norite tęsti šį įrašą, įsitikinkite, kad turite šiuos dalykus:

  1. Linux pagrindu sukurta sistema su root teisėmis.
  2. Prieiga prie tinklo.

Sistemos konfigūravimas naudojant UIDMap

Prieš diegdami ir konfigūruodami „Docker“, turime įdiegti ir sukonfigūruoti sistemą naudodami „uidmap“ įrankį.

„UIDMap“ leidžia valdyti „Linux“ sistemos procesų UID ir GUI susiejimą vartotojų vardų erdvių turinyje. Prisiminkite, kai minėjome, kad „Docker“ be šaknų naudojasi vartotojo vardų erdvėmis? Šis įrankis leis mums nurodyti UID ir GID atvaizdus ir atitinkamas vardų sritis.

Pradėkite atnaujindami sistemos paketus taip:

$ sudo apt-get update

Tada įdiekite uidmap įrankį, kaip parodyta:

$ sudo apt-get install uidmap - ir

„Rootless Docker“ diegimas

Kitas žingsnis yra apdoroti ir įdiegti „Docker“ be šaknų. Tai galime padaryti atlikdami paprastus toliau nurodytus veiksmus:

Pradėkite atsisiųsdami „rootless Docker“ diegimo programos scenarijų iš toliau pateiktos nuorodos:

https://get.docker.com/rootless

Galite naudoti cURL arba WGET.

$ garbanoti -sSL https: // get.docker.com / be šaknų | sh

Atminkite, kad negalite paleisti aukščiau nurodytos komandos kaip root naudotojas.

Baigę diegti, redaguokite .bashrc failą naudodami mėgstamą teksto rengyklę:

$ nano .bashrc

Tada į bashrc konfigūracijos failą pridėkite šiuos įrašus:

eksportuoti XDG_RUNTIME_DIR = / namai / ubuntu / .dokeris / paleisti

eksportuoti KELIAS = / namai / ubuntu / šiukšliadėžė: $PATH

eksportuoti DOCKER_HOST =Unix: /// namai / ubuntu / .dokeris / paleisti / dokas.kojinė

Būtinai pakeiskite vartotoją iš „ubuntu“ į vartotoją, kurį norite įdiegti „Docker“. Scenarijaus išvestis suteiks jums turinį, kurį norite įtraukti į .bashrc failą.

Išsaugokite pakeitimus ir uždarykite redaktorių.

Kitame žingsnyje turime inicijuoti bešaknį Docker demoną. Tai galime padaryti naudodami systemctl, kaip parodyta toliau pateiktoje komandoje:

systemctl -- ubuntu paleisti dokerį

Pradėję galite naudoti Docker komandas, kad paleistumėte ir sukonfigūruotumėte Docker konteinerius.

Išvada

Šiame vadove sužinojome apie bešaknių Docker funkcionalumą, kaip jis veikia ir kaip galime jį konfigūruoti Linux sistemoje. Jei norite sužinoti daugiau, peržiūrėkite bešaknių dokų dokumentaciją.