I-VM noma i-Docker?

Wazi kanjani uma udinga i-Docker hhayi i-VM? Udinga ukunquma ukuthi yini ngempela ofuna ukuyihlukanisa. Uma ufuna ukuhlukanisa isistimu enezinsiza ezizinikele eziqinisekisiwe kanye nehadiwe ebonakalayo, ukukhetha kufanele kube i-VM. Uma udinga ukuhlukanisa izinhlelo zokusebenza ezisebenzayo njengezinqubo ezihlukene zesistimu, uzodinga i-Docker.

Manje-ke yini umehluko phakathi kweziqukathi ze-Docker nama-VM?

Umshini obonakalayo (VM) iyikhompyutha ebonakalayo enawo wonke amadivaysi abonakalayo kanye ne-virtual hard disk okufakwa kuyo i-OS entsha ezimele kanye nezishayeli zedivayisi ebonakalayo, ukuphathwa kwememori nezinye izingxenye. Okusho ukuthi, sithola i-abstraction ye-hardware ebonakalayo esivumela ukuthi sisebenzise amakhompyutha amaningi abonakalayo kukhompuyutha eyodwa.
I-VM efakiwe ingathatha isikhala kudiski yekhompyutha yakho ngezindlela ezahlukene:

  • indawo ehleliwe ye-hard disk, evumela ukufinyelela ngokushesha ku-virtual hard disk futhi igweme ukuhlukaniswa kwefayela;
  • ukwabiwa kwenkumbulo eguquguqukayo. Lapho ufaka izinhlelo zokusebenza ezengeziwe, inkumbulo izokwabelwa yona ngokushintshashintshayo ize ifinyelele inani eliphakeme elinikezwe yona.

Imishini ebonakalayo eyengeziwe ngeseva ngayinye, ithatha isikhala esiningi, futhi idinga ukusekelwa okuqhubekayo kwendawo edingekayo ukuze uhlelo lwakho lokusebenza lusebenze.

Docker isofthiwe yokwakha izinhlelo zokusebenza ezisekelwe esitsheni. Iziqukathi nemishini ebonakalayo inezinzuzo ezifanayo, kodwa isebenza ngendlela ehlukile. Iziqukathi zithatha indawo encane ngoba... sebenzisa kabusha izinsiza ezabiwe zesistimu yokusingatha kune-VM, ngoba ngokungafani ne-VM, inikeza i-virtualization ezingeni le-OS, hhayi ezingeni le-hardware. Le ndlela iholela ekugxilweni kwenkumbulo ephansi, ukuthunyelwa okusheshayo, nokukala okulula.

Isiqukathi sinikeza indlela esebenza kahle kakhulu yokuhlanganisa izinhlelo zokusebenza ngokunikeza ukuxhumana okudingekayo kusistimu yokusingatha. Lesi sici sivumela iziqukathi ukuthi zabelane ngomnyombo wohlelo, nesiqukathi ngasinye sisebenza njengenqubo ye-OS yomsingathi ehlukile enesethi yayo yezindawo zememori (isikhala sayo samakheli abonakalayo). Njengoba indawo yekheli lesitsha ngasinye ingeyaso, idatha yezindawo zememori ezihlukene ayikwazi ukushintshwa.
I-OS yomdabu ye-Docker yi-Linux (i-Docker ingasetshenziswa futhi ku-Windows naku-MacOS), isebenzisa izinzuzo zayo eziyinhloko, ezivumela ukuthi ihlele ukuhlukaniswa kwe-kernel. Ukusebenzisa iziqukathi ze-Docker ku-Windows kuzokwenzeka ngaphakathi komshini obonakalayo osebenzisa i-Linux OS, ngoba iziqukathi zabelana nge-OS yesistimu yokusingatha futhi i-OS yazo eyinhloko yi-Linux.

Isitsha - sisebenza kanjani?

Isiqukathi isifinyezo sezinga lohlelo lokusebenza esihlanganisa ikhodi nokuncika. Iziqukathi zihlale zidalwe kusukela ezithombeni, zengeza isendlalelo esiphezulu esibhalekayo futhi kuqaliswe amapharamitha ahlukahlukene. Ngenxa yokuthi isiqukathi sinesendlalelo saso sokubhala futhi zonke izinguquko zigcinwa kuleso sendlalelo, iziqukathi eziningi zingabelana ngokufinyelela esithombeni esifanayo esiyinhloko.

Isiqukathi ngasinye singalungiswa ngefayela kuphrojekthi ye-docker-compose efakwe esixazululweni esikhulu - docker-compose.yml. Lapho ungasetha amapharamitha ahlukahlukene njengegama lesiqukathi, izimbobo, izihlonzi, imikhawulo yensiza, ukuncika phakathi kwezinye iziqukathi. Uma ungacacisi igama lesiqukathi kuzilungiselelo, i-Docker izodala isitsha esisha isikhathi ngasinye, isinike igama ngokungahleliwe.

Uma isiqukathi siqalwa sisuka esithombeni, i-Docker ikhweza uhlelo lwefayela lokufunda-bhala ngaphezulu kwanoma yiziphi izendlalelo ezingezansi. Lapha yilapho zonke izinqubo esifuna ukuthi isiqukathi sethu se-Docker sisebenze kuzosebenza.

Lapho i-Docker iqala isitsha, isendlalelo sokuqala sokufunda-bhala asinalutho. Uma izinguquko zenzeka, zisetshenziswa kulolu ungqimba; isibonelo, uma ufuna ukushintsha ifayela, lelo fayela lizokopishwa kusukela kungqimba yokufunda kuphela ngezansi ukuya kungqimba lokufunda nokubhala.
Inguqulo yefayela yokufunda kuphela isazoba khona, kodwa manje ifihliwe ngaphansi kwekhophi. Amavolumu asetshenziselwa ukugcina idatha, kungakhathaliseki umjikelezo wempilo yesiqukathi. Amavolumu aqaliswa lapho isiqukathi sidalwa.

Isithombe sihlobene kanjani nesiqukathi?

Isithombe - into esemqoka yesiqukathi ngasinye. Isithombe sidalwe sisuka ku-Dockerfile engezwe kuphrojekthi futhi siyisethi yezinhlelo zamafayela (izendlalelo) ezibekwe phezu kwesinye futhi zihlanganiswe ndawonye, ​​​​okufundwa kuphela; inani eliphezulu lezendlalelo yi-127.

Enhliziyweni yesithombe ngasinye kunesithombe esiyisisekelo, esicaciswe umyalo othi FROM - indawo yokungena lapho wakha isithombe se-Dockerfile. Isendlalelo ngasinye siwungqimba lokufunda kuphela futhi simelelwa umyalo owodwa oshintsha uhlelo lwefayela, olubhalwe ku-Dockerfile.
Ukuhlanganisa lezi zendlalelo zibe yisithombe esisodwa, i-Docker isebenzisa isistimu yefayela le-Union enezingqimba eziningi Ezithuthukisiwe (i-AuFS yakhelwe phezu kwe-UnionFS), ivumela amafayela ahlukene nezinkomba ezivela ezendlalelo zefayela ezihlukene ukuthi zimbozwe ngokusobala, idale uhlelo lwefayela oluhlangene.

Izendlalelo ziqukethe imethadatha ekuvumela ukuthi ugcine ulwazi oluhlobene mayelana nesendlalelo ngasinye phakathi nesikhathi sokusebenza kanye nesikhathi sokwakha. Isendlalelo ngasinye siqukethe isixhumanisi sesendlalelo esilandelayo; uma ungqimba lungenaso isixhumanisi, kusho ukuthi luwungqimba oluphezulu kakhulu esithombeni.

I-Dockerfile ingase iqukathe imiyalo efana nale:

  • FROM — indawo yokungena lapho wakha isithombe;
  • UMNAKESI - igama lomnikazi wesithombe;
  • RUN - ukukhishwa komyalo phakathi nokuhlanganiswa kwesithombe;
  • ADD - ukukopisha ifayela le-host esithombeni esisha; uma ucacisa i-URL yefayela, i-Docker izoyilanda kuhla lwemibhalo olushiwo;
  • ENV - okuguquguqukayo kwemvelo;
  • I-CMD - iqala ukudalwa kwesiqukathi esisha esisekelwe esithombeni;
  • ENTRYPOINT - umyalo usetshenziswa lapho isiqukathi siqala.
  • I-WORKDIR iyinkomba esebenzayo yokwenza umyalo we-CMD.
  • USER - usetha i-UID yesiqukathi esidalwe ngokusekelwe esithombeni.
  • I-VOLUME - ifaka uhla lwemibhalo lomsingathi esitsheni.
  • I-EXPOSE isethi yezimbobo ezilalelwa esitsheni.

Isebenza kanjani i-UnionFS?

UnionFS - uhlelo lwefayela lesitaki esisetshenziswayo (FS) leLinux neFreeBSD. Le FS isebenzisa indlela yokukopisha-phezu kokubhala (Kopisha-Ubhale, INKOMAZI). Iyunithi yokusebenza ye-UnionFS iyisendlalelo; isendlalelo ngasinye kufanele sibhekwe njengohlelo oluhlukile lwefayela oluphelele olunohlu lwemibhalo olusuka empandeni ngokwayo. I-UnionFS idala ukukhweza kwenyunyana kwezinye izinhlelo zamafayela futhi ivumela amafayela nezinkomba ezivela ezinhlelweni zamafayela ahlukene (okuthiwa amafoloko) ukuthi kuhlanganiswe kube uhlelo lwefayela olulodwa oluhambisanayo, ngokusobala kumsebenzisi.

Okuqukethwe kwezinkomba ezinemizila efanayo kuzovela ndawonye kuhla lwemibhalo olulodwa oluhlanganisiwe (endaweni yegama elilodwa) lomphumela wesistimu yefayela.

I-UnionFS ihlanganisa izendlalelo ngokusekelwe ezimisweni ezilandelayo:

  • enye yezendlalelo iba ungqimba lwezinga eliphezulu, isendlalelo sesibili nezilandelayo ziba izingqimba ezisezingeni eliphansi;
  • izinto zesendlalelo ziyatholakala kumsebenzisi "kusuka phezulu kuye phansi", i.e. uma into eceliwe ikusendlalelo "ngaphezulu", iyabuyiselwa, kungakhathaliseki ukuthi kukhona into enegama elifanayo "phansi" ungqimba; ngaphandle kwalokho into yongqimba “oluphansi” ibuyiselwa; uma into eceliwe ingekho noma ingekho, iphutha elithi “Alikho ifayela elinjalo noma uhla lwemibhalo” olubuyiswayo;
  • isendlalelo esisebenzayo yiso "phezulu", okungukuthi, zonke izenzo zomsebenzisi zokushintsha idatha ziboniswa kuphela isendlalelo sezinga eliphezulu, ngaphandle kokuthinta okuqukethwe kwezingqimba zamaleveli aphansi.

I-Docker ubuchwepheshe obuvame kakhulu bokusebenzisa iziqukathi ukusebenzisa izinhlelo zokusebenza. Sekuyindinganiso ensimini, yakhela kumaqoqo kanye nezikhala zamagama ezinikezwe i-Linux kernel.

I-Docker isivumela ukuthi sikhiphe ngokushesha izinhlelo zokusebenza futhi sisebenzise kahle uhlelo lwefayela ngokuhlukanisa i-OS kernel phakathi kwazo zonke iziqukathi, esebenza njengezinqubo ezihlukene ze-OS.

Source: www.habr.com

Engeza amazwana