/ / Môžem spustiť Docker-in-Docker bez použitia príznaku --privileged - security, docker

Môžem spustiť Docker-in-Docker bez použitia príznaku --privileged - security, docker

By som rád použil Docker-in-Docker Avšak nepriaznivý používateľ poskytuje prístup k zariadeniam. Existuje spôsob, ako to spustiť pomocou kombinácie zväzkov a cap-add atď.?

odpovede:

8 pre odpoveď č. 1

Bohužiaľ nie, musíte použiť --privileged pre spustenie Docker v Docker, môžete sa pozrieť na oficiálne oznámenie kde uviedli, že je to jeden z mnohých účelov --privileged flag.

V podstate potrebujete viac prístupu k zariadeniam hostiteľského systému na spustenie doku, ako sa vám pri behu bez --privileged.


3 pre odpoveď č. 2

Áno, môžete v dokovacej stanici spustiť doker bez --privileged flag. Zahŕňa upevnenie dockerovej zásuvky na nádobu takto:

   docker run -it -v /var/run/docker.sock:/var/run/docker.sock 
-v $(which docker):/bin/docker 
alpine docker ps -a

To sa chystá pripojiť zásuvku dokovacej stanice a spustiteľný súbor do kontajnera a spustiť docker ps -a v alpskom kontajneri. Jérôme Petazzoni, ktorý autorkoval príklad dind a urobil veľa práce na --privileged vlajka to povedala o docke v docke:

https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/

Tento prístup už na chvíľu používam a funguje to celkom dobre.

Upozornenie s týmto prístupom je, že veci sa zmierniaso skladovaním. Budete lepšie používať kontajnery objemového objemu alebo pomenované objemy dát namiesto montáže adresárov.Pretože používate zásuvku dokovacej stanice z hostiteľa, všetky adresáre, s ktorými chcete pripojiť v podriadenom kontajneri, musia byť z kontextu hostiteľa , nie rodičovský kontajner. Stáva sa to čudné. Mala som väčšie šťastie s objemovými kontajnermi.