Rootless Docker

Rootless Docker



Docker on üks võimsamaid ja mõjukamaid tööriistu kaasaegseks rakenduste arendamiseks ja juurutamiseks. Arendajatena kasutame seda oma kohalikes masinates, et kiiresti seadistada ja konfigureerida keskkondi, mis vastavad meie rakendusvajadustele sekunditega.

Dockeris töötades võime aga kohata juhtumeid, kus peame looma ja kasutama Dockeri ressursse, kuid meil pole juurjuurdepääsu.

Või soovite ehk lubada mitmel antud süsteemi kasutajal Dockerile juurde pääseda ja seda kasutada ilma kõigi kasutajate juurõigust andmata.







Selles õpetuses õpime tundma juurteta Dockerit, mida see tähendab, kuidas see töötab ja kuidas saame seda kasutada, et võimaldada kasutajatel, kellel pole juurjuurdepääsu, kasutada Dockerit ja sellega seotud teenuseid.



Mis on juurteta dokkija?

Vaikimisi nõuavad Dockeri deemon ja selle tööriistad pärast Dockeri installimist hostisüsteemi juurõigusi. Dockeri rikkumine võib põhjustada märkimisväärset turvariski, mis võib anda ründajale juurjuurdepääsu.



Rootless Docker on funktsioon, mis võimaldab meil kasutada ja käivitada Dockeri deemonit ja sellega seotud konteinereid ilma juurõigusteta.





Kuidas see töötab

Kuigi juurteta dokkimiskeskkonna tehnilisse toimimisse sukeldumine võib olla keeruline, on alljärgnev kõrgetasemeline ülevaade, mis selgitab, mida juurteta dokk teeb ja kuidas see kapoti all töötab.

Kasutajanimeruumid – Üks olulisi funktsioone, mida juurteta dokkija kasutab, on kasutajanimeruumid. See Linuxi kerneli põhifunktsioon võimaldab protsessidel olla nimeruumis erinevad kasutaja- ja grupi ID-d võrreldes välisega. See tähendab, et protsess võib oma nimeruumis töötada juurkasutajana, kuid väljaspool seda töötab see tavakasutajana.



Võrgustiku loomine – Järgmine juurteta Dockeri funktsioon on võrgundus. Vaikimisi tugineb tavaline dokkedeemon võrgupakkidele, nagu iptables ja sillad, mis nõuavad juurõigusi.

Docker kasutab selliseid funktsioone nagu slirp4netns, mis pakub juurteta dokkis kasutajarežiimi TCP/IP-virna. See võimaldab Dockeril juurdepääsu võrgule ilma hostisüsteemi juurõiguseta.

Säilitamine – Järgmine oluline juurteta dokkija osa on salvestusdraiver. Vaikimisi kasutab Docker overlay2 salvestusdraiverit, mis, nagu võite arvata, nõuab juurõigusi. Selle asemel kasutab juurteta doki eksemplar fuse-overlayfs draiverit. See draiver põhineb FUSE ülekattel fs, mis võimaldab meil selle paigaldada ilma juurõigusteta.

Ülaltoodud on mõned juurteta doki eksemplari olulised komponendid. Pidage meeles, et see ei uuri juurteta dokkeri täielikku toimimist. Lisateabe saamiseks vaadake dokumentatsiooni.

Rootless Docker – nõuded

Liigume teooriast välja ja õpime, kuidas luua ja konfigureerida juurteta Dockeri keskkonda.

Selle postituse jätkamiseks veenduge, et teil oleks järgmine.

  1. Linuxi-põhine süsteem juurõigustega.
  2. Juurdepääs võrgule.

Süsteemi konfigureerimine UIDMapi abil

Enne Dockeri installimist ja konfigureerimist peame installima ja konfigureerima süsteemi uidmapi utiliidiga.

UIDMap võimaldab meil hallata Linuxi süsteemi protsesside UID ja GUI vastendusi kasutajanimeruumide sisus. Kas mäletate, kui mainisime, et juurteta Docker kasutab kasutajanimeruume ära? See tööriist võimaldab meil määrata UID ja GID vastendused ning neile vastavad nimeruumid.

Alustage süsteemipakettide värskendamisega järgmiselt.

$ sudo apt-get update

Järgmisena installige uidmapi utiliit, nagu näidatud:

$ sudo apt-get install uidmap -ja

Rootless Dockeri installimine

Järgmine samm on juurteta Dockeri töötlemine ja installimine. Saame seda teha, järgides allpool kirjeldatud lihtsaid samme:

Alustuseks laadige allolevalt lingilt alla juurteta dockeri installiskript:

https://get.docker.com/rootless

Võite kasutada cURL-i või WGET-i.

$ lokk -sSL https: // get.docker.com / juurteta | sh

Pange tähele, et ülaltoodud käsku ei saa käivitada juurkasutajana.

Kui installimine on lõppenud, muutke oma .bashrc-faili oma lemmiktekstiredaktoriga:

$ nano .bashrc

Järgmisena lisage bashrc konfiguratsioonifaili järgmised kirjed:

eksportida XDG_RUNTIME_DIR = / Kodu / ubuntu / .docker / jooksma

eksportida PATH = / Kodu / ubuntu / prügikast: $PATH

eksportida DOCKER_HOST =unix: /// Kodu / ubuntu / .dokk / jooksma / dokkija.sokk

Muutke kasutajaks 'ubuntu' kasutajaks, kellele soovite Dockeri installida. Skripti väljund annab teile .bashrc-failile lisatava sisu.

Salvestage muudatused ja sulgege redaktor.

Järgmises etapis peame käivitama juurteta Dockeri deemoni. Saame seda teha systemctl abil, nagu on näidatud allolevas käsus:

systemctl --ubuntu käivita dokk

Pärast käivitamist saate kasutada Dockeri käske Dockeri konteinerite käivitamiseks ja konfigureerimiseks.

Järeldus

Selles õpetuses õppisime juurteta Dockeri funktsioone, kuidas see töötab ja kuidas seda Linuxi süsteemis konfigureerida. Lisateabe saamiseks vaadake julgelt juurteta doki dokumentatsiooni.