VM kana Docker?

Unoziva sei kana iwe uchida Docker uye kwete VM? Iwe unofanirwa kusarudza izvo chaizvo zvaunoda kuzviparadzanisa. Kana iwe uchida kupatsanura sisitimu ine yakavimbiswa yakatsaurwa zviwanikwa uye chaiyo hardware, saka sarudzo inofanira kunge iri VM. Kana iwe uchida kupatsanura kumhanya maapplication seyakasiyana system maitiro, iwe unozoda Docker.

Saka ndeupi musiyano uripo pakati pemidziyo yeDocker nemaVM?

Virtual muchina (VM) ikombiyuta chaiyo ine zvigadziridzo zvese uye dhisiki yakaoma dhisiki iyo itsva yakazvimirira OS inoisirwa pamwe chete nemadhiraivha edhidhiyo, manejimendi endangariro uye zvimwe zvikamu. Kureva kuti, tinowana abstraction yemidziyo yemuviri inotitendera kuti timhanye akawanda emakomputa epakombiyuta imwe chete.
VM yakaiswa inogona kutora nzvimbo pane dhisiki rekombuta yako nenzira dzakasiyana:

  • yakagadziriswa hard disk space, iyo inobvumira kukurumidza kuwana kune virtual hard disk uye inodzivirira kupatsanurwa kwefaira;
  • dynamic memory allocation. Paunenge uchiisa mamwe maapplication, ndangariro inozopihwa zvine simba kwavari kudzamara yasvika pachiyero chepamusoro chakagoverwa kwairi.

Iyo yakawanda chaiyo michina pasevha, iyo yakawanda nzvimbo yavanotora, uye inodawo tsigiro yenguva dzose kune nharaunda inodiwa kuti application yako ishande.

Docker isoftware yekugadzira mudziyo-based application. Makoni uye machina chaiwo ane mabhenefiti akafanana, asi anoshanda zvakasiyana. Zvigubhu zvinotora nzvimbo shoma nekuti... shandisazve zvimwe zvakagovaniswa zviwanikwa zveiyo host system kupfuura iyo VM, nekuti kusiyana neVM, inopa virtualization padanho reOS, kwete padanho rehardware. Iyi nzira inoguma nekudzika kwendangariro tsoka, kukurumidza kutumira, uye kureruka kuyera.

Iyo mudziyo inopa yakawedzera kushanda nzira yekuputira maapplication nekupa iyo inodiwa yekupindirana kune iyo host system. Iyi ficha inobvumira midziyo kuti igovane musimboti weiyo sisitimu, nemudziyo wega wega unoshanda seyakasarudzika OS maitiro ane yayo seti yenzvimbo dzekurangarira (yayo chaiyo kero nzvimbo). Sezvo yega yega yega kero kero nzvimbo iri yayo, data yenzvimbo dzakasiyana dzekurangarira haigone kuchinjwa.
Iyo yemuno OS yeDocker iLinux (Docker inogona zvakare kushandiswa paWindows uye MacOS), inoshandisa mabhenefiti ayo makuru, ayo anoibvumira kuronga kupatsanurwa kwekernel. Kumhanya Docker midziyo paWindows kuchaitika mukati memuchina chaiwo unomhanya Linux OS, nekuti midziyo inogovera OS yeiyo host system uye iyo huru OS kwavari iLinux.

Container - inoshanda sei?

Mudziyo is an application-level abstraction iyo inosanganisa kodhi uye zvinoenderana. Midziyo inogara ichigadzirwa kubva kumifananidzo, ichiwedzera inonyorwa yepamusoro layer uye kutanga akasiyana ma paramita. Nekuti chigadziko chine chinyorwa chayo chekunyora uye shanduko dzese dzakachengetwa muchikamu ichocho, midziyo yakawanda inogona kugovera kuwana kune imwechete tenzi mufananidzo.

Imwe neimwe mudziyo inogona kugadzirwa kuburikidza nefaira mune docker-compose purojekiti inosanganisirwa mumhinduro huru - docker-compose.yml. Ikoko iwe unogona kuseta akasiyana ma paramita senge zita remudziyo, madoko, zviziviso, zviwanikwa zvekushandisa, zvinoenderana pakati pezvimwe midziyo. Kana iwe ukasataura zita remudziyo muzvirongwa, Docker ichagadzira mudziyo mutsva nguva yega yega, ichichipa zita zvisina tsarukano.

Kana mudziyo watangwa kubva pamufananidzo, Docker inoisa yekuverenga-nyora faira system pamusoro pechero zvidimbu pazasi. Apa ndipo pane ese maitiro atinoda kuti Docker mudziyo wedu umhanye unomhanya.

Kana Docker atanga atanga mudziyo, yekutanga kuverenga-nyora layer haina chinhu. Kana shanduko dzikaitika, dzinoiswa kune iyi layer; semuenzaniso, kana iwe uchida kushandura faira, iyo faira ichakopwa kubva pakuverenga-chete layer pazasi kuenda kune yekuverenga-nyora layer.
Iyo yekuverenga-chete vhezheni yefaira icharamba iripo, asi ikozvino yakavanzwa pasi pekopi. Mavhoriyamu anoshandiswa kuchengetedza data, zvisinei nehupenyu hwekutenderera kwemudziyo. Mavhoriyamu anotangwa kana mudziyo wagadzirwa.

Mufananidzo wacho wakabatana sei nemudziyo?

Image - chinhu chikuru chegaba rega rega. Mufananidzo wacho wakagadzirwa kubva kuDockerfile yakawedzerwa kupurojekiti uye iri seti yemafaira masisitimu (matanho) akaturikidzana pamusoro peumwe neumwe uye akaunganidzwa pamwechete, kuverenga-chete; huwandu hwehuwandu hwezvikamu ndeye 127.

Pamwoyo pechifananidzo chega chega pane chifananidzo chepasi, chinotsanangurwa nemurairo weFROM - nzvimbo yekupinda paunenge uchivaka mufananidzo weDockerfile. Imwe neimwe layer ndeye yekuverenga chete layer uye inomiririrwa nemurairo mumwechete unogadzirisa iyo faira system, yakanyorwa muDockerfile.
Kubatanidza aya matinji kuita mufananidzo mumwechete, Docker inoshandisa iyo Yepamberi yakawanda yakaturikidzana Union faira system (AuFS yakavakirwa pamusoro pe UnionFS), ichibvumira akasiyana mafaera nemadhairekitori kubva akasiyana faira akafukidzwa, achigadzira yakabatana faira system.

Matanho ane metadata inobvumidza iwe kuchengetedza ruzivo rwakabatana nezvega rega rega panguva yekumhanya uye nguva yekuvaka. Nheyo yega yega ine chinongedzo kune chinotevera layer; kana layer isina chinongedzo, saka ndiyo yepamusoro-soro pamufananidzo.

Iyo Dockerfile inogona kunge iine mirairo yakadai se:

  • KUBVA - nzvimbo yekupinda paunenge uchigadzira chifananidzo;
  • MAINTAINER - zita remuridzi wemufananidzo;
  • RUN - kuraira kuuraya panguva yekusangana kwemufananidzo;
  • ADD - kukopa faira rekugamuchira kumufananidzo mutsva; kana iwe ukatsanangura iyo URL yefaira, Docker inoidhawunirodha kune yakataurwa dhairekitori;
  • ENV - nharaunda dzakasiyana;
  • CMD - inotanga kusikwa kwemudziyo mutsva wakavakirwa pamufananidzo;
  • ENTRYPOINT - murairo unoitwa kana mudziyo uchitanga.
  • WORKDIR ndiro dhairekitori rekushanda rekuita iyo CMD command.
  • USER - inoseta iyo UID yemudziyo wakagadzirwa zvichienderana nemufananidzo.
  • VOLUME - inokwirisa dhairekitori remukati mumudziyo.
  • EXPOSE seti yezviteshi zvinoteererwa mumudziyo.

UnionFS inoshanda sei?

UnionFS - utility stack faira system (FS) yeLinux uye FreeBSD. Iyi FS inoshandisa nzira yekukopa-pa-kunyora (Copy-On-Write, COW). Iyo inoshanda unit yeUnionFS dhizaini; yega yega yega inofanirwa kutorwa seyakaparadzana yakazara-yakazara faira system ine hierarchy yemadhairekitori kubva pamudzi pachawo. UnionFS inogadzira gomo remubatanidzwa kune mamwe mafaera masisitimu uye inobvumira mafaera nemadhairekitori kubva akasiyana faira masisitimu (anonzi maforogo) kuti abatanidzwe kuita imwechete yakabatana faira system, pachena kumushandisi.

Zviri mukati memadhairekitori ane nzira dzakafanana zvichaonekwa pamwechete mudhairekitori rimwe rakabatana (mune imwe nzvimbo yezita) yeinobuda faira system.

UnionFS inosanganisa mataira zvichienderana nemisimboti inotevera:

  • imwe yezvikamu inova iyo yepamusoro-yepamusoro-soro, yechipiri uye inotevera mitsara inova iyo yakaderera-yepamusoro mazinga;
  • layer zvinhu zvinowanikwa kune mushandisi "kubva kumusoro kusvika pasi", i.e. kana chinhu chakakumbirwa chiri mu "top" layer, inodzoserwa, zvisinei nekuvapo kwechinhu chine zita rimwechete mu "pasi" layer; kana zvisina kudaro chinhu che "pasi" layer chinodzoserwa; kana chinhu chakakumbirwa chisipo kana ipapo, kukanganisa "Hapana faira rakadaro kana dhairekitori" rinodzoserwa;
  • dhizaini yekushanda ndiyo "yepamusoro" imwe, ndiko kuti, zviito zvose zvevashandisi kuchinja data zvinoratidzirwa chete pamusoro pepamusoro-soro, pasina kukanganisa zviri mukati mezvikamu zvemazinga akaderera.

Docker ndiyo yakajairika tekinoroji yekushandisa midziyo kumhanya maapplication. Yakave chiyero mumunda, ichivaka pamapoka uye nzvimbo dzezita dzakapihwa neLinux kernel.

Docker inotibvumira kukurumidza kutumira zvikumbiro uye kushandisa zvakanyanya faira system nekutsemura OS kernel pakati pemidziyo yese, ichimhanya seyakasiyana OS maitiro.

Source: www.habr.com

Voeg