Ngiyigijimise kanjani i-Docker ngaphakathi kwe-Docker nokuthi yini eyaphuma kuyo

Sanibonani nonke! Kweyakhe isihloko esandulele, ngithembise ukukhuluma ngokuqhuba i-Docker ku-Docker kanye nezici ezisebenzayo zokusebenzisa lesi sifundo. Yisikhathi sokugcina isithembiso sakho. I-devopser enolwazi cishe izophikisa ukuthi labo abadinga i-Docker ngaphakathi kwe-Docker bamane badlulisele isokhethi le-daemon le-Docker kusuka kumsingathi baye esitsheni futhi lokhu kuzokwanela ku-99% wamacala. Kepha ungajahi ukungijikijela amakhukhi, ngoba sizokhuluma ngokuqhuba i-Docker ngaphakathi kwe-Docker. Lesi sixazululo sinezinhlelo zokusebenza eziningi ezingenzeka futhi lesi sihloko sikhuluma ngesinye sazo, ngakho-ke hlala emuva futhi uqondise izingalo zakho phambi kwakho.

Ngiyigijimise kanjani i-Docker ngaphakathi kwe-Docker nokuthi yini eyaphuma kuyo

Начало

Konke kwaqala ngo-September kusihlwa elina imvula lapho ngihlanza umshini engangiwuqashile nge-$5 ku-Digital Ocean, owawuqhwa ngenxa yokuthi i-Docker yayigcwalise wonke ama-gigabytes angu-24 esikhala sediski esitholakalayo ngezithombe neziqukathi zayo. Okuxakayo kwakuwukuthi zonke lezi zithombe neziqukathi zazingokwesikhashana futhi zazidingeka kuphela ukuhlola ukusebenza kwesicelo sami njalo lapho kukhishwa inguqulo entsha yomtapo wolwazi noma uhlaka. Ngazama ukubhala izikripthi zegobolondo nokusetha uhlelo lwe-cron lokuhlanza udoti, kodwa akuzange kusize: ngaso sonke isikhathi lapho kuphelile ngokungenakugwenywa ngesikhala sediski seseva yami sidliwe futhi iseva ilenga (okungcono kakhulu). Ngesinye isikhathi, ngahlangana nendatshana emayelana nendlela yokusebenzisa i-Jenkins esitsheni nokuthi ingawadala kanjani futhi isuse amapayipi okwakha ngokusebenzisa isokhethi yedaemon yedocker edluliselwe kuso. Ngiwuthandile lo mbono, kodwa nginqume ukuqhubekela phambili futhi ngizame ukuzama ukusebenzisa i-Docker ngqo ngaphakathi kwe-Docker. Ngaleso sikhathi, kimi kwabonakala kuyisixazululo esinengqondo ngokuphelele ukulanda izithombe ze-Docker nokudala iziqukathi zazo zonke izinhlelo zokusebenza engangizidinga ukuze zihlolwe ngaphakathi kwesinye isitsha (ake sikubize ngokuthi isitsha sokubeka). Umqondo wawuwukuqala isitsha sokubeka ngefulegi -rm, esisusa ngokuzenzakalelayo sonke isiqukathi nakho konke okuqukethwe kuso lapho simiswa. Ngicabange ngesithombe se-Docker esivela ku-Docker uqobo (https://hub.docker.com/_/docker), kodwa kwaba nzima kakhulu futhi angizange ngikwazi ukuyithola ukuthi isebenze ngendlela engangiyidinga ngayo futhi ngangifuna ukuhamba yonke indlela ngokwami.

Prakthiza. Izigaxa

Ngazimisela ukwenza isiqukathi sisebenze ngendlela engangiyidinga futhi ngaqhubeka nokuhlola kwami, okwaphumela embuthweni wenqwaba. Umphumela wokuzihlukumeza kwami ​​kwaba yi-algorithm elandelayo:

  1. Sethula isiqukathi se-Docker ngemodi yokusebenzisana.

    docker run --privileged -it docker:18.09.6

    Naka inguqulo yesiqukathi, hambela kwesokudla noma kwesokunxele bese i-DinD yakho iphenduka ithanga. Eqinisweni, izinto ziyaphuka kaningi lapho kukhishwa inguqulo entsha.
    Kufanele singene ngokushesha egobolondweni.

  2. Sizama ukuthola ukuthi yiziphi iziqukathi ezisebenzayo (Impendulo: akukho), kodwa masiqhube umyalo noma kunjalo:

    docker ps

    Uzomangala kancane, kepha kuvele ukuthi i-docker daemon ayisebenzi:

    error during connect: Get http://docker:2375/v1.40/containers/json: dial tcp: lookup docker on 
    192.168.65.1:53: no such host

  3. Masiyiqhube ngokwethu:

    dockerd &

    Okunye ukumangala okungajabulisi:

    failed to start daemon: Error initializing network controller: error obtaining controller instance: failed 
    to create NAT chain DOCKER: Iptables not found

  4. Faka ama-iptables namaphakheji we-bash (yonke into ijabulisa kakhulu ukusebenza ku-bash kune-sh):

    apk add --no-cache iptables bash

  5. Masiqalise i-bash. Ekugcineni sibuyele egobolondweni elijwayelekile

  6. Ake sizame ukuqala i-Docker futhi:

    dockerd &

    Kufanele sibone ishidi elide lamalogi eligcina ngokuthi:

    INFO[2019-11-25T19:51:19.448080400Z] Daemon has completed initialization          
    INFO[2019-11-25T19:51:19.474439300Z] API listen on /var/run/docker.sock

  7. Cindezela u-Enter. Sesibuyile ebhashi.

Kusukela manje kuqhubeke, singazama ukwethula ezinye iziqukathi ngaphakathi kwesitsha sethu se-Docker, kodwa kuthiwani uma sifuna ukwethula esinye isitsha se-Docker ngaphakathi kwesitsha sethu se-Docker noma kukhona okungahambanga kahle bese kuphahlazeka isiqukathi? Qala kabusha futhi.

Isiqukathi sakho se-DinD kanye nokuhlolwa okusha

Ngiyigijimise kanjani i-Docker ngaphakathi kwe-Docker nokuthi yini eyaphuma kuyo
Ukugwema ukuphinda izinyathelo ezingenhla kaningi, ngizakhele esami isitsha se-DinD:

https://github.com/alekslitvinenk/dind

Isixazululo esisebenzayo se-DinD singinikeze ikhono lokusebenzisa i-Docker ngaphakathi kwe-Docker ngokuphindaphindiwe futhi ngenze izivivinyo eziyingozi.
Ngizochaza isilingo esisodwa esinjalo (esiyimpumelelo) sokusebenzisa i-MySQL ne-Nodejs manje.
Ongenasineke kakhulu uyabona ukuthi bekunjani lapha

Ngakho-ke, ake siqale:

  1. Sethula i-DinD ngemodi yokusebenzisana. Kule nguqulo ye-DinD, sidinga ukwenza imephu mathupha zonke izimbobo ezingase zisetshenziswe iziqukathi zezingane zethu (sengivele ngisebenza kulokhu)

    docker run --privileged -it 
    -p 80:8080 
    -p 3306:3306 
    alekslitvinenk/dind

    Singena ku-bash, lapho singaqala khona ukwethula iziqukathi zezingane.

  2. Qalisa i-MySQL:

    docker run --name mysql -e MYSQL_ROOT_PASSWORD=strongpassword -d -p 3306:3306 mysql

  3. Sixhuma kusizindalwazi ngendlela efanayo naleyo ebesingaxhuma ngayo kuyo endaweni. Masiqinisekise ukuthi konke kuyasebenza.

  4. Yethula isiqukathi sesibili:

    docker run -d --rm -p 8080:8080 alekslitvinenk/hello-world-nodejs-server

    Sicela uqaphele ukuthi imephu yembobo izoba ncamashi 8080:8080, njengoba sesivele senze imephu ye-port 80 ukusuka kumsingathi kuya kusiqukathi esingumzali kuya ku-port 8080.

  5. Siya ku-localhost kusiphequluli, qiniseka ukuthi iseva iphendula ngokuthi β€œSawubona Mhlaba!”

Endabeni yami, ukuhlolwa kweziqukathi ze-Docker ezifakwe esidlekeni kuvele kukuhle futhi ngizoqhubeka nokuthuthukisa iphrojekthi futhi ngiyisebenzisele ukwenza isiteji. Kubonakala kimi ukuthi lokhu kuyisixazululo esilula kakhulu kune-Kubernetes no-Jenkins X. Kodwa lokhu kuwumbono wami ozimele.

Ngicabanga ukuthi yilokho kuphela esihlokweni sanamuhla. Esihlokweni esilandelayo ngizochaza ngokuningiliziwe izivivinyo zokusebenzisa i-Docker ngokuphindaphindiwe ku-Docker kanye nezinkomba ezikhuphukayo zijule ezitsheni ezivalelwe.

PS Uma uthola le phrojekthi iwusizo, sicela uyinikeze inkanyezi ku-GitHub, ifoloko bese utshela abangani bakho.

Hlela1 Amaphutha alungisiwe, agxile kumavidiyo angu-2

Source: www.habr.com

Engeza amazwana