Rootless Docker

Rootless Docker



A Docker az egyik leghatékonyabb és legbefolyásosabb eszköz a modern alkalmazásfejlesztéshez és -telepítéshez. Fejlesztőként a helyi gépeinken használjuk, hogy pillanatok alatt gyorsan beállíthassuk és konfigurálhassuk az alkalmazásigényeinknek megfelelő környezeteket.

Amikor azonban a Dockerben dolgozunk, előfordulhatnak olyan esetek, amikor Docker-erőforrásokat kell létrehoznunk és használnunk, de nincs root hozzáférésünk.

Vagy talán szeretné lehetővé tenni egy adott rendszer több felhasználójának, hogy hozzáférjen és használja a Dockert anélkül, hogy az összes felhasználó root engedélyét megadná.







Ebben az oktatóanyagban megtudjuk a gyökér nélküli Dockerről, mit jelent, hogyan működik, és hogyan tehetjük lehetővé, hogy a root hozzáféréssel nem rendelkező felhasználók is használhassák a Dockert és a kapcsolódó szolgáltatásokat.



Mi az a Rootless Docker?

Alapértelmezés szerint a Docker telepítése után a Docker démon és eszközei root jogosultságokat igényelnek a gazdagépen. Ez jelentős biztonsági kockázatot jelenthet, ha a Dockert feltörik, ami root hozzáférést adhat a támadónak.



A Rootless Docker egy olyan funkció, amely lehetővé teszi a Docker démon és a kapcsolódó tárolók használatát és futtatását root jogosultságok nélkül.





Hogyan működik

Bár kihívást jelenthet belemerülni a gyökér nélküli dokkoló környezet műszaki működésébe, a következő magas szintű áttekintés elmagyarázza, mit csinál egy gyökér nélküli dokkoló, és hogyan működik a motorháztető alatt.

Felhasználói névterek – A gyökér nélküli dokkoló egyik jelentős funkciója a felhasználói névterek. A Linux kernel ezen alapvető tulajdonsága lehetővé teszi, hogy a folyamatok a névtérben eltérő felhasználói és csoportazonosítókkal rendelkezzenek, mint a kívülről. Ez azt jelenti, hogy egy folyamat a névterében root felhasználóként futhat, de azon kívül normál felhasználóként.



Hálózatépítés – A gyökér nélküli Docker következő funkciója a hálózatépítés. Alapértelmezés szerint a normál docker-démon olyan hálózati veremekre támaszkodik, mint például az iptables és a root jogosultságokat igénylő hidak.

A Docker olyan funkciók előnyeit használja ki, mint például a slirp4netns, amely felhasználói módú TCP/IP-vermet biztosít egy gyökér nélküli dokkolóban. Ez lehetővé teszi a Docker számára, hogy a gazdagép rendszer root engedélye nélkül hozzáférjen a hálózathoz.

Tárolás – A gyökér nélküli dokkoló következő lényeges része a tároló-illesztőprogram. Alapértelmezés szerint a Docker overlay2 tároló-illesztőprogramot használ, amelyhez, amint sejthető, root engedélyek szükségesek. Ehelyett egy gyökér nélküli dokkolópéldány a fuse-overlayfs illesztőprogramot használja. Ez az illesztőprogram az fs FUSE overlay-n alapul, amely lehetővé teszi, hogy root engedélyek nélkül csatlakoztassuk.

A fentiek a gyökér nélküli docker-példány néhány alapvető összetevője. Ne feledje, hogy ez nem fedezi fel a gyökértelen dokkoló teljes működését. További információért tekintse át a dokumentációt.

Rootless Docker – Követelmények

Lépjünk tovább az elmélettől, és tanuljuk meg, hogyan hozhatunk létre és konfigurálhatunk gyökér nélküli Docker környezetet.

A bejegyzés követéséhez győződjön meg arról, hogy rendelkezik az alábbiakkal:

  1. Linux alapú rendszer root jogosultságokkal.
  2. Hálózati hozzáférés.

A rendszer konfigurálása UIDMap segítségével

A Docker telepítése és konfigurálása előtt telepítenünk és konfigurálnunk kell a rendszert az uidmap segédprogrammal.

Az UIDMap lehetővé teszi számunkra, hogy kezeljük a Linux rendszerben futó folyamatok UID és GUI leképezéseit a felhasználói névterek tartalmában. Emlékszel, amikor említettük, hogy a gyökér nélküli Docker kihasználja a felhasználói névtereket? Ez az eszköz lehetővé teszi az UID és GID leképezések és a hozzájuk tartozó névterek megadását.

Kezdje a rendszercsomagok frissítésével az alábbiak szerint:

$ sudo apt-get frissítés

Ezután telepítse az uidmap segédprogramot az ábrán látható módon:

$ sudo apt-get install uidmap -és

Rootless Docker telepítése

A következő lépés a gyökér nélküli Docker feldolgozása és telepítése. Ezt az alábbi egyszerű lépések követésével tehetjük meg:

Először töltse le a rootless docker telepítő szkriptjét az alábbi linkről:

https://get.docker.com/rootless

Használhatja a cURL-t vagy a WGET-et.

$ becsavar -sSL https: // get.docker.com / gyökértelen | SH

Vegye figyelembe, hogy a fenti parancs nem futtatható root felhasználóként.

A telepítés befejezése után szerkessze a .bashrc fájlt kedvenc szövegszerkesztőjével:

$ nano .bashrc

Ezután adja hozzá a következő bejegyzéseket a bashrc konfigurációs fájlhoz:

export XDG_RUNTIME_DIR = / itthon / ubuntu / .dokkmunkás / fuss

export PÁLYA = / itthon / ubuntu / kuka: $PATH

export DOCKER_HOST =unix: /// itthon / ubuntu / .dokkmunkás / fuss / dokkoló.zokni

Győződjön meg arról, hogy a felhasználót „ubuntu”-ról arra a felhasználóra módosítja, akire telepíteni kívánja a Dockert. A szkript kimenete megadja a .bashrc fájlhoz hozzáadandó tartalmat.

Mentse el a változtatásokat, és zárja be a szerkesztőt.

A következő lépésben a gyökértelen Docker démont kell elindítanunk. Ezt megtehetjük a systemctl használatával, az alábbi parancs szerint:

systemctl --ubuntu indítsa el a dokkolót

Az indítás után a Docker-parancsokkal indíthatja el és konfigurálhatja a Docker-tárolókat.

Következtetés

Ebben az oktatóanyagban megismertük a gyökér nélküli Docker funkcióit, működését, és hogyan konfigurálhatjuk Linux rendszeren. További információért bátran tekintse meg a gyökér nélküli docker dokumentációját.