Salama daholo! Amin'ny azy , Nampanantena aho fa hiresaka momba ny fampandehanana ny Docker ao amin'ny Docker sy ny lafiny azo ampiharina amin'ny fampiasana ity lesona ity. Fotoana tokony hankatoavana ny fampanantenanao izao. Ny devoser za-draharaha dia mety hanohitra fa ireo izay mila Docker ao anatin'ny Docker dia mandefa fotsiny ny socket daemon Docker avy amin'ny mpampiantrano ao anaty fitoeran-javatra ary ho ampy izany amin'ny 99% amin'ny tranga. Fa aza maika hanipy mofomamy amiko, satria hiresaka momba ny fampandehanana an'i Docker ao anaty Docker isika. Ity vahaolana ity dia manana fampiharana maro azo atao ary ity lahatsoratra ity dia momba ny iray amin'izy ireo, koa mipetraha ary ahitsio eo anoloanao ny sandrinao.

Ny fiandohana
Nanomboka tamin'ny takarivan'ny volana septambra izany rehetra izany raha nanadio ny milina nofaiko tamin'ny $5 aho tao amin'ny Ranomasimbe Digital, izay nivaingana noho ny nahafeno ny habaka kapila misy 24 gigabytes rehetra tamin'ny sary sy ny fitoerany i Docker. Ny mahatsikaiky dia ireo sary sy fitoeran-javatra rehetra ireo dia mandalo fotsiny ary ilaina fotsiny mba hitsapana ny fahombiazan'ny fampiharana nataoko isaky ny misy dikan-teny vaovao amin'ny tranomboky na rafitra iray. Nanandrana nanoratra script akorandriaka aho ary nametraka fandaharam-potoana cron mba hanadiovana ny fako, saingy tsy nanampy izany: isaky ny tsy azo ihodivirana dia nifarana tamin'ny fihinanana ny habaka kapila an'ny mpizara ary mihantona ny mpizara (amin'ny tsara indrindra). Tamin'ny fotoana iray dia nahita lahatsoratra momba ny fomba fampandehanana an'i Jenkins ao anaty fitoeran-javatra iray aho ary ny fomba ahafahany mamorona sy mamafa ny fantsona fananganana amin'ny alàlan'ny docker daemon socket alefa ao anatiny. Tiako ilay hevitra, saingy nanapa-kevitra ny handeha lavitra aho ary hanandrana hanandrana mivantana an'i Docker ao anaty Docker. Tamin'izany fotoana izany dia toa vahaolana lojika tanteraka ny télécharger sary Docker sy hamorona fitoeran-javatra ho an'ny rindranasa rehetra ilaiko amin'ny fitsapana ao anaty fitoeran-javatra hafa (aleo atao hoe container staging). Ny hevitra dia ny hanombohana fitoeran-javatra misy ny sainam-pirenena -rm, izay mamafa ho azy ny kaontenera manontolo sy ny ao anatiny rehetra rehefa mijanona. Niresaka tamin'ny sary Docker avy amin'i Docker mihitsy aho (), saingy lasa sarotra loatra izany ary tsy vitako mihitsy ny nanao izany tamin'ny fomba nilaiko azy ary naniry ny handeha amin'ny lalana rehetra aho.
Fanao. Cones
Nandeha nanao ny kaontenera araka izay nilaiko aho ary nanohy ny andrana nataoko, izay niteraka tsimokaretina maro. Ny vokatry ny fampijaliana ny tenako dia izao manaraka izao:
Mandeha ny container Docker amin'ny fomba interactive izahay.
docker run --privileged -it docker:18.09.6Tandremo ny dikan'ny kaontenera, miankavanana na miankavia ary mivadika ho voatavo ny DinD-nao. Raha ny marina, matetika dia rava ny zavatra rehefa mivoaka ny dikan-teny vaovao.
Tsy maintsy miditra avy hatrany ao anaty akorandriaka isika.Miezaka mitady izay kaontenera mandeha izahay (Valiny: tsy misy), fa aleo atao ihany ny baiko:
docker psHo gaga kely ianao, saingy hita fa tsy mandeha akory ny daemon Docker:
error during connect: Get http://docker:2375/v1.40/containers/json: dial tcp: lookup docker on 192.168.65.1:53: no such hostAndeha isika hanao izany:
dockerd &Fahagagana hafa tsy mahafinaritra:
failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: Iptables not foundApetraho ny fonosana iptables sy bash (mahafinaritra kokoa ny miasa amin'ny bash noho ny amin'ny sh):
apk add --no-cache iptables bashAndao hanomboka bash. Farany dia miverina amin'ny akorany mahazatra isika
Andao andramana hanomboka indray ny Docker:
dockerd &Tokony hahita takelaka lavareny isika mifarana amin'ny:
INFO[2019-11-25T19:51:19.448080400Z] Daemon has completed initialization INFO[2019-11-25T19:51:19.474439300Z] API listen on /var/run/docker.sockTsindrio ny Enter. Miverina amin'ny bash izahay.
Manomboka izao dia afaka manandrana mametraka kaontenera hafa ao anatin'ny kaontenera Docker izahay, fa ahoana kosa raha te-hametraka kaontenera Docker hafa ao anatin'ny kaontenera Docker izahay na misy zavatra tsy mety ary mianjera ny container? Atombohy indray.
Fitehirizana DinD manokana sy andrana vaovao
Mba hialana amin'ny famerimberenana ireo dingana etsy ambony ireo dia namorona ny fitoeran-dranoko DinD manokana aho:
Ny vahaolana DinD miasa dia nanome ahy fahafahana hampandeha an'i Docker ao anatin'ny Docker miverimberina ary manao andrana mampientam-po kokoa.
Hiresaka momba ny fanandramana iray (mahomby) toy izany aho amin'ny fampandehanana MySQL sy Nodejs izao.
Ny tena tsy manam-paharetana dia afaka mahita ny fomba nisy teto

Ka andeha aloha:
Mandeha ny DinD amin'ny fomba interactive izahay. Amin'ity dika DinD ity dia mila sarintany amin'ny tanana ny seranana rehetra azon'ny fitoeran'ny zanatsika ampiasaina (efa miasa amin'ity aho)
docker run --privileged -it -p 80:8080 -p 3306:3306 alekslitvinenk/dindMiditra ao amin'ny bash izahay, izay ahafahantsika manomboka avy hatrany ny fametrahana fitoeran-jaza.
Sokafy ny MySQL:
docker run --name mysql -e MYSQL_ROOT_PASSWORD=strongpassword -d -p 3306:3306 mysqlMifandray amin'ny angon-drakitra izahay amin'ny fomba mitovy amin'ny fampifandraisana azy eo an-toerana. Andao ho azo antoka fa mandeha ny zava-drehetra.
Alefaso ny container faharoa:
docker run -d --rm -p 8080:8080 alekslitvinenk/hello-world-nodejs-serverMariho fa ny sarintany seranan-tsambo dia ho marina 8080:8080, satria efa nanao sarintany ny seranan-tsambo 80 avy amin'ny mpampiantrano mankany amin'ny fitoeran'ny ray aman-dreny mankany amin'ny seranana 8080 izahay.
Mandeha amin'ny localhost amin'ny navigateur izahay, ataovy azo antoka fa mamaly ny "Hello World!"
Raha ny amiko, ny fanandramana miaraka amin'ireo kaontenera Docker nested dia nivadika ho tsara ary hanohy hampivelatra ny tetikasa aho ary hampiasa izany amin'ny fampisehoana. Amiko dia vahaolana maivana kokoa noho i Kubernetes sy Jenkins X ity. Fa ity no hevitro manokana.
Heveriko fa izay ihany no ho an'ny lahatsoratra anio. Ao amin'ny lahatsoratra manaraka dia holazaiko amin'ny antsipiriany bebe kokoa ny fanandramana amin'ny fampandehanana an'i Docker miverimberina ao amin'ny Docker ary ny fametrahana lahatahiry lalina ao anaty fitoeran-jiro.
Sal Raha hitanao fa mahasoa ity tetikasa ity dia omeo kintana ao amin'ny GitHub izy io, vakio ary ilazao ny namanao.
Ahitsio1 Nahitsy ny lesoka, nifantoka tamin'ny horonan-tsary 2
Source: www.habr.com
