Momwe ndimathamangitsira Docker mkati mwa Docker ndi zomwe zidatulukamo

Moni nonse! Mu zake nkhani yapita, Ndinalonjeza kuti ndidzalankhula za kuyendetsa Docker ku Docker ndi zochitika zogwiritsira ntchito phunziroli. Yakwana nthawi yosunga lonjezo lanu. Wogwiritsa ntchito wodziwa zambiri angatsutse kuti iwo omwe akufunika Docker mkati mwa Docker amangotumiza socket ya Docker daemon kuchokera kwa wolandirayo kulowa mumtsuko ndipo izi zikhala zokwanira 99% yamilandu. Koma musathamangire kundiponyera makeke, chifukwa tikambirana za kuyendetsa Docker mkati mwa Docker. Yankho ili liri ndi ntchito zambiri zomwe zingatheke ndipo nkhaniyi ili pafupi ndi imodzi mwa izo, choncho khalani kumbuyo ndikuwongola manja anu patsogolo panu.

Momwe ndimathamangitsira Docker mkati mwa Docker ndi zomwe zidatulukamo

Kunyumba

Zonse zinayamba pa mvula ya September madzulo pamene ndinali kuyeretsa makina omwe ndinabwereka kwa $ 5 pa Digital Ocean, yomwe inali itaundana chifukwa chakuti Docker anali atadzaza ma gigabytes onse a 24 a disk space omwe alipo ndi zithunzi zake ndi zotengera. Chodabwitsa chinali chakuti zithunzi ndi zotengera zonsezi zinali zosakhalitsa ndipo zimangofunika kuyesa momwe ndingagwiritsire ntchito ntchito yanga nthawi iliyonse pamene mtundu watsopano wa laibulale kapena chimango umatulutsidwa. Ndinayesa kulemba zolemba za zipolopolo ndikukhazikitsa ndondomeko ya cron kuti ndiyeretse zinyalala, koma sizinathandize: nthawi zonse zimathera ndi malo a disk disk ndikudyedwa ndi seva ikulendewera (bwino). Panthawi ina, ndidapeza nkhani yokhudza momwe mungayendetsere Jenkins mu chidebe ndi momwe angapangire ndikuchotsa mapaipi omanga kudzera pa socket ya daemon yotumizidwa mmenemo. Ndidakonda lingalirolo, koma ndidaganiza zopitilira ndikuyesera kuyesa Docker mkati mwa Docker. Panthawiyo, zinkawoneka kwa ine yankho lomveka bwino kutsitsa zithunzi za Docker ndikupanga zotengera zonse zomwe ndimafunikira kuyesa mkati mwa chidebe china (tiyeni titchule chidebe chosungira). Lingaliro linali loyambitsa chidebe chokhala ndi -rm mbendera, yomwe imachotsa chidebe chonsecho ndi zonse zomwe zili mkati mwake ikayimitsidwa. Ndidayang'ana chithunzi cha Docker kuchokera ku Docker yokha (https://hub.docker.com/_/docker), koma zidakhala zovuta kwambiri ndipo sindinathe kuzigwira ntchito momwe ndimafunikira ndipo ndimafuna kupita ndekha ndekha.

Yesetsani. Cones

Ndinayamba kupanga chidebecho kuti chigwire ntchito momwe ndimafunikira ndikupitilira kuyesa kwanga, zomwe zidapangitsa kuti pakhale masamba ambiri. Zotsatira za kudzizunza kwanga zinali zotsatirazi:

  1. Timakhazikitsa chidebe cha Docker munjira yolumikizirana.

    docker run --privileged -it docker:18.09.6

    Samalani ndi mtundu wa chidebecho, yendani kumanja kapena kumanzere ndipo DinD yanu imasanduka dzungu. M'malo mwake, zinthu zimasweka nthawi zambiri pomwe mtundu watsopano watulutsidwa.
    Nthawi yomweyo tiyenera kulowa mu chipolopolo.

  2. Tikuyesera kuti tidziwe zomwe zikuyendetsa (Yankho: palibe), koma tiyeni tiyendetse lamuloli:

    docker ps

    Mudzadabwitsidwa pang'ono, koma zikuwoneka kuti daemon ya Docker sikuyenda nkomwe:

    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. Tiyeni tiyendetse tokha:

    dockerd &

    Chodabwitsa china chosasangalatsa:

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

  4. Ikani ma iptables ndi bash phukusi (zonse ndizosangalatsa kugwira ntchito mu bash kuposa sh):

    apk add --no-cache iptables bash

  5. Tiyeni tiyambe bash. Pomaliza tabwerera mu chipolopolo chomwe mwachizolowezi

  6. Tiyeni tiyese kuyambitsanso Docker:

    dockerd &

    Tiyenera kuwona pepala lalitali la zipika lomwe limatha ndi:

    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. Dinani Enter. Tabwerera ku bash.

Kuyambira pano, titha kuyesa kuyambitsa zotengera zina mkati mwa chidebe chathu cha Docker, koma bwanji ngati tikufuna kukhazikitsa chidebe china cha Docker mkati mwa chidebe chathu cha Docker kapena china chake chikavuta ndipo chidebecho chikuwonongeka? Yambaninso kachiwiri.

Chotengera chanu cha DinD ndi zoyeserera zatsopano

Momwe ndimathamangitsira Docker mkati mwa Docker ndi zomwe zidatulukamo
Kuti ndipewe kubwereza zomwe zili pamwambapa mobwerezabwereza, ndidapanga chidebe changa cha DinD:

https://github.com/alekslitvinenk/dind

Yankho logwira ntchito la DinD linandipatsa kuthekera koyendetsa Docker mkati mwa Docker mobwerezabwereza ndikuchita zoyeserera zambiri.
Ndikufotokozera kuyesa kumodzi kotere (kopambana) kogwiritsa ntchito MySQL ndi Nodejs tsopano.
Osaleza mtima kwambiri atha kuwona momwe zidalili pano

Chifukwa chake, tiyeni tiyambire:

  1. Timatsegula DinD mumayendedwe olumikizana. Mu mtundu uwu wa DinD, tifunika kupanga mapu madoko onse omwe nkhokwe za ana athu angagwiritse ntchito (ndikugwira ntchito kale)

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

    Timalowa mu bash, pomwe titha kuyamba kuyambitsa zotengera za ana.

  2. Tsegulani MySQL:

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

  3. Timagwirizanitsa ku database mofanana ndi momwe tingalumikizireko kwanuko. Tiyeni tiwonetsetse kuti zonse zikuyenda.

  4. Yambitsani chidebe chachiwiri:

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

    Chonde dziwani kuti mapu adoko adzakhala ndendende 8080:8080, popeza tajambula kale doko 80 kuchokera kwa omwe adalandira kupita ku chidebe cha makolo kupita ku port 8080.

  5. Timapita ku localhost mu msakatuli, onetsetsani kuti seva iyankha "Moni Padziko Lonse!"

Kwa ine, kuyesa kwa zotengera za Docker zomwe zidakhalako zidakhala zabwino kwambiri ndipo ndipitiliza kupanga ntchitoyi ndikuigwiritsa ntchito popanga. Zikuwoneka kwa ine kuti iyi ndi njira yopepuka kwambiri kuposa Kubernetes ndi Jenkins X. Koma ili ndi lingaliro langa lokhazikika.

Ndikuganiza kuti ndizo zonse za nkhani ya lero. M'nkhani yotsatira ndifotokoza mwatsatanetsatane zoyeserera poyendetsa Docker mobwerezabwereza ku Docker ndikuyika maulalo akuzama muzotengera zomwe zili ndi zisa.

PS Ngati mukuwona kuti pulojekitiyi ndi yothandiza, chonde ipatseni nyenyezi pa GitHub, ikani ndikuwuza anzanu.

Sinthani1 Zolakwika zokonzedwa, zoyang'ana pamavidiyo awiri

Source: www.habr.com

Kuwonjezera ndemanga