Mhoroi mose! Mune yake , Ndakavimbisa kukuudza nezve kumhanya Docker muDocker uye maitiro ekushandisa chidzidzo ichi. Yasvika nguva yekuzadzisa vimbiso yangu. Ane ruzivo DevOps angangopokana kuti avo vanoda Docker mukati meDocker vanongoendesa mberi iyo Docker daemon socket kubva kune muenzi mukati memudziyo uye izvi zvinokwana mu99% yemakesi. Asi usamhanye kukanda makuki kwandiri, nekuti tichataura nezve kuvhurwa chaiko kweDocker mukati meDocker. Mhinduro iyi ine nzvimbo dzakawanda dzinogoneka dzekushandisa uye chinyorwa ichi chiri pamusoro peimwe yacho, saka gara kumashure uye gadzirisa maoko ako pamberi pako.

Musha
Izvo zvese zvakatanga pane kunaya kweSeptember manheru pandakanga ndichichenesa muchina wairenda $ 5 paDigital Ocean yakanga yaoma nechando kusvika pakufa nekuti Docker yakanga yazadza ese 24 gigabytes yeinowanikwa disk space nemifananidzo yayo nemidziyo. Chaishamisa ndechekuti mifananidzo yese iyi nemidziyo zvaive zvenguva pfupi uye zvaingodiwa kuti ndiedze kushanda kwechishandiso changu pese paiburitswa shanduro itsva yeraibhurari kana hurongwa. Ndakaedza kunyora zvinyorwa zvemagoko uye kumisikidza cron hurongwa hwekuchenesa marara, asi hazvina kubatsira: pese pazvaipera nesavha yangu disk space ichidyiwa uye sevha ichitonhora (pakunyanya). Pane imwe nguva, ndakasangana nechinyorwa nezve maitiro ekumhanyisa Jenkins mumudziyo uye maitiro aanogona kugadzira nekudzima mapaipi ekuvaka kuburikidza neDocker daemon socket yakapfuura mairi. Ndakafarira zano, asi ndakafunga kuenderera mberi uye kuyedza kuyedza nekumhanyisa Docker mukati meDocker. Zvaiita kwandiri senge mhinduro ine musoro kurodha mifananidzo yeDocker uye kugadzira midziyo yezvese maapplication andinoda kuyedza mukati mechimwe chigadziko (ngatichidaidze chigaba chekugadzira). Pfungwa iyi yaive yekumhanyisa chigaba chine -rm mureza, icho chinodzima chigaba chose nezvose zvirimo kana chamiswa. Ndakachera ndichitenderedza nemufananidzo weDocker kubva kuDocker pachayo (), asi zvakazonyanya kunetsa uye handina kuzombokwanisa kuita kuti ishande nenzira yandaida uye ndaida kuita iyo nzira yese ini.
Dzidzira. Cones
Ndakazvigadzirira chinangwa chekuita kuti mudziyo ushande sezvandaida uye ndakaenderera mberi nekuedza kwangu, izvo zvakaguma nemapundu asingaverengeki. Mhedzisiro yekuzvitambudza kwangu yaive inotevera algorithm:
Isu tinotangisa mudziyo weDocker mune inopindirana modhi.
docker run --privileged -it docker:18.09.6Teerera kune vhezheni yemudziyo, nhanho kurudyi kana kuruboshwe uye DinD yako inoshanduka kuita nhanga. Muchokwadi, zvese zvinoputsika kazhinji nekuburitswa kweshanduro nyowani.
Tinofanira kupinda mugoko nekukasika.Ngatiedzei kuona kuti ndeapi midziyo iri kushanda (Mhinduro: hapana), asi ngatimhanyei murairo zvakadaro:
docker psIwe uchashamisika zvishoma, asi zvinozoitika kuti iyo Docker daemon haisi kana kumhanya:
error during connect: Get http://docker:2375/v1.40/containers/json: dial tcp: lookup docker on 192.168.65.1:53: no such hostNgatimhanyei pachedu:
dockerd &Chimwe chishamiso chisingafadzi:
failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: Iptables not foundIsu tinoisa iptables uye bash mapakeji (zvinonyanya kunakidza kushanda mu bash pane mu sh):
apk add --no-cache iptables bashTanga bash. Pakupedzisira, tadzoka mugoko rakajairika
ngatiedze kumhanya Docker zvakare:
dockerd &Tinofanira kuona pepa refu rematanda rinopera ne:
INFO[2019-11-25T19:51:19.448080400Z] Daemon has completed initialization INFO[2019-11-25T19:51:19.474439300Z] API listen on /var/run/docker.sockDzvanya Enter. Tadzokera mushongwe.
Kubva panguva ino zvichienda mberi tinogona kuedza kumhanyisa zvimwe midziyo mukati meDocker mudziyo wedu, asi ko kana tichida kumhanyisa imwe mudziyo weDocker mukati memudziyo wedu weDocker kana chimwe chinhu chikatadza uye mudziyo ukaputsika? Tanga patsva zvakare.
Own DinD mudziyo uye zviedzo zvitsva
Kuti ndidzivise kudzokorora nhanho dziri pamusoro kakawanda, ndakagadzira yangu DinD mudziyo:
Kuve nekushanda kweDinD mhinduro kwakandipa kugona kumhanyisa Docker mukati meDocker nekudzokorodza uye kuita zvimwe zviedzo zvinonetsa.
Ndiri kuzotsanangura imwe yakadaro (yakabudirira) kuyedza nekumhanyisa MySQL neNodejs izvozvi.
Vasina moyo murefu vanogona kuona kuti zvanga zvaita sei pano

Saka ngatitangei:
Mhanya DinD mune inopindirana modhi. Muiyi vhezheni yeDinD isu tinofanirwa kupeta mamepu ese madoko anogona kushandiswa nevana vedu (ini ndiri kutoshanda pane izvi)
docker run --privileged -it -p 80:8080 -p 3306:3306 alekslitvinenk/dindIsu tinopinda mubash, kubva kwatinogona kutanga nekukasira midziyo yevana.
Tanga MySQL:
docker run --name mysql -e MYSQL_ROOT_PASSWORD=strongpassword -d -p 3306:3306 mysqlIsu tinobatanidza kune dhatabhesi nenzira imwechete yatingabatanidza nayo munharaunda. Tine chokwadi chekuti zvese zvinoshanda.
Isu tinovhura mudziyo wechipiri:
docker run -d --rm -p 8080:8080 alekslitvinenk/hello-world-nodejs-serverNdokumbira utarise kuti mepu yechiteshi pano ichanyatso 8080:8080, sezvo isu tatove nemepu yechiteshi 80 kubva kumubati kuenda kumudziyo wevabereki pachiteshi 8080.
Isu tinoenda kune localhost mubrowser, ita shuwa kuti sevha inopindura "Mhoro Nyika!".
Mune yangu, kuyedza nemidziyo yeDocker yakave yakanaka uye ini ndicharamba ndichigadzira chirongwa ichi uye nekuchishandisa pakuita. Zvinoratidzika kwandiri kuti iyi ndiyo yakanyanya kureruka mhinduro kupfuura imwechete Kubernetes naJenkins X. Asi iyi ndiyo pfungwa yangu yekuzvibata.
Ndinofunga kuti ndizvo chete zvechinyorwa chanhasi. Muchinyorwa chinotevera ini ndichatsanangura mune zvakadzama kuyedza neinodzokorodza Docker kutanga muDocker uye kukwira madhairekitori akadzika mumidziyo yakavharirwa.
PS Kana iwe ukaona ichi purojekiti ichibatsira, ndapota ipa nyeredzi paGitHub, forogo uye uudze shamwari dzako.
Edit1 Yakagadziriswa zvikanganiso, yakatariswa pamavhidhiyo maviri
Source: www.habr.com
