Ukuqonda iDocker

Kudala ndisebenzisa i-Docker iinyanga ezininzi ngoku ukulungisa inkqubo yophuhliso / yokuhanjiswa kweeprojekthi zewebhu. Ndinika abafundi beHabrakhabr ukuguqulelwa kwenqaku lentshayelelo malunga ne-docker - "Ukuqonda i-docker".

Yintoni idocker?

I-Docker liqonga elivulekileyo lokuphuhlisa, ukuhambisa, kunye nokusebenza kwezicelo. IDocker yenzelwe ukuhambisa izicelo zakho ngokukhawuleza. Nge-docker, ungasisusa isicelo sakho kwisiseko sakho kwaye uphathe isiseko njengesicelo esilawulwayo. IDocker ikunceda ukuba uthumele ikhowudi yakho ngokukhawuleza, uvavanye ngokukhawuleza, uthumele izicelo ngokukhawuleza, kwaye unciphise ixesha phakathi kwekhowudi yokubhala kunye nekhowudi esebenzayo. I-Docker ikwenza oku ngeqonga lesikhongozeli esikhaphukhaphu, usebenzisa iinkqubo kunye nezinto eziluncedo ezikuncedayo ekulawuleni nasekuhambiseni izicelo zakho.

Embindini wayo, i-docker ikuvumela ukuba uqhube phantse nasiphi na isicelo, sodwa ngokukhuselekileyo kwisitya. Ukwahlukaniswa ngokukhuselekileyo kukuvumela ukuba uqhube izikhongozeli ezininzi kumsingathi omnye ngaxeshanye. Ubume obukhaphukhaphu besitya, esisebenza ngaphandle komthwalo owongezelelweyo we-hypervisor, ikuvumela ukuba ufumane okungakumbi kwi-hardware yakho.

Iqonga le-container virtualization kunye nezixhobo zinokuba luncedo kwezi meko zilandelayo:

  • ukupakisha isicelo sakho (kunye nezinto ozisebenzisayo) kwizikhongozeli zedokhi;
  • ukuhanjiswa nokuhanjiswa kwezi zikhongozeli kumaqela enu ukuze ziphuhliswe kwaye zivavanywe;
  • ukubeka ezi zikhongozeli kwiindawo zakho zokuvelisa, zombini kumaziko edatha kunye nasemafini.

Ndingayisebenzisela ntoni idocker?

Ukupapasha ngokukhawuleza izicelo zakho

I-Docker ilungile ekuququzeleleni umjikelo wophuhliso. IDocker ivumela abaphuhlisi ukuba baqhube izikhongozeli zasekhaya kunye nezicelo kunye neenkonzo. Okukuvumela emva koko ukuba udibanise nenkqubo yokuhlanganiswa okuqhubekayo kunye nokuhanjiswa komsebenzi.

Umzekelo, abaphuhlisi bakho babhala ikhowudi ekuhlaleni kwaye babelane ngophuhliso lwabo (iseti yemifanekiso yeDocker) kunye noogxa babo. Xa sele belungile, batyhala ikhowudi kunye nezikhongozeli kwindawo yovavanyo kwaye baqhube naluphi na uvavanyo oluyimfuneko. Ukusuka kwindawo yokuvavanya, banokuthumela ikhowudi kunye nemifanekiso kwimveliso.

Ukwandlaleka ngokulula kunye nokutyhileka

Iqonga esekwe kwisikhongozeli se-docker lenza kube lula ukufaka umthwalo wakho wokuhlawula. Izikhongozeli zeDocker zinokusebenza kumatshini wakho wasekhaya, nokuba yinyani okanye kumatshini obonakalayo kwiziko ledatha, okanye kwilifu.

Ukuphatheka kunye nendalo ekhaphukhaphu ye-docker yenza kube lula ukulawula umthwalo wakho womsebenzi. Ungasebenzisa i-docker ukubeka okanye ukuvala isicelo sakho okanye iinkonzo. Isantya se-docker sivumela oku ukuba kwenziwe kufutshane nexesha lokwenyani.

Imithwalo ephezulu kunye neentlawulo ezininzi

I-Docker ilula kwaye iyakhawuleza. Inika enye indlela eyomelelayo, enexabiso eliphantsi koomatshini benyani abasekwe kwi-hypervisor. Iluncedo ngakumbi kwiindawo ezinomthwalo ophezulu, umzekelo, xa udala ifu lakho okanye iqonga-njengenkonzo. Kodwa ikwaluncedo nakwizicelo ezincinci neziphakathi xa ufuna ukufumana ngaphezulu kwezixhobo onazo.

Izixhobo eziphambili zeDocker

IDocker iqulathe izinto ezimbini eziphambili:

  • I-Docker: iqonga elivulekileyo le-virtualization;
  • I-Docker Hub: Iqonga lethu-njengenkonzo yokuhambisa kunye nokulawula izitya zeDocker.

Phawula! I-Docker isasazwa phantsi kwelayisensi ye-Apache 2.0.

Uyilo lweDocker

UDocker usebenzisa uyilo lwe-server-server. Umxhasi we-Docker unxibelelana ne-Docker daemon, ethatha umthwalo wokudala, ukuqhuba, kunye nokuhambisa izitya zakho. Bobabini umxhasi kunye nomncedisi banokusebenza kwindlela enye, ungaqhagamshela umxhasi kwidaemon yedocker ekude. Umxhasi kunye nomncedisi banxibelelana ngesokethi okanye nge-RESTful API.

Ukuqonda iDocker

Docker daemon

Njengoko kubonisiwe kumzobo, i-daemon isebenza kumatshini wokusingatha. Umsebenzisi akasebenzisani nomncedisi ngokuthe ngqo, kodwa usebenzisa umxhasi kule nto.

Umxhasi weDocker

Umxhasi weDocker, inkqubo yedocker, yeyona nto iphambili kwiDocker. Ifumana imiyalelo kumsebenzisi kwaye inxibelelana ne-docker daemon.

Ngaphakathi kwidokhi

Ukuqonda ukuba yeyiphi na i-docker, kufuneka wazi malunga nezinto ezintathu:

  • imifanekiso
  • ubhaliso
  • izikhongozeli

Imifanekiso

Umfanekiso weDocker yitemplate yokufunda kuphela. Ngokomzekelo, umfanekiso unokuba nenkqubo yokusebenza ye-Ubuntu kunye ne-Apache kunye nesicelo kuyo. Imifanekiso isetyenziselwa ukwenza izikhongozeli. IDocker yenza kube lula ukwenza imifanekiso emitsha, ukuhlaziya esele ikho, okanye unokukhuphela imifanekiso eyenziwe ngabanye abantu. Imifanekiso ngamalungu okwakhiwa kwedocker.

I-registry

Ubhaliso lweDocker lugcina imifanekiso. Kukho iirejistri zikawonke-wonke kunye nezabucala apho unokukhuphela okanye ulayishe imifanekiso. Ubhaliso lukawonke-wonke lweDocker lu Ihabhu yedokodo. Kukho ingqokelela enkulu yemifanekiso egcinwe apho. Njengoko usazi, imifanekiso inokwenziwa nguwe okanye ungasebenzisa imifanekiso eyenziwe ngabanye. Iirejistri ziyinxalenye yonikezelo.

Izikhongozeli

Izikhongozeli ziyafana nabalawuli. Izikhongozeli ziqulethe yonke into efunekayo ukuze isicelo siqhube. Isikhongozeli ngasinye senziwe ngomfanekiso. Imigqomo ingenziwa, iqalwe, imiswe, ifuduswe okanye icinywe. Isitya ngasinye sibekwe sodwa kwaye sibonelela ngeqonga elikhuselekileyo lesicelo. Izikhongozeli ziinxalenye zomsebenzi.

Ke iDocker isebenza njani?

Ukuza kuthi ga ngoku siyazi ukuba:

  • singenza imifanekiso apho izicelo zethu zikhoyo;
  • sinokwenza izikhongozeli kwimifanekiso ukuze siqhube izicelo;
  • Sinokusasaza imifanekiso nge-Docker Hub okanye enye irejista yomfanekiso.

Makhe sibone ukuba la malungu adibana njani.

Usebenza njani umfanekiso?

Sele sisazi ukuba umfanekiso yitemplate yokufunda kuphela apho kwenziwa khona isikhongozeli. Umfanekiso ngamnye uneseti yamanqanaba. Usebenzisa iDocker inkqubo yefayile yomanyano ukudibanisa lamanqanaba kumfanekiso omnye. Inkqubo yefayile yomanyano ivumela iifayile kunye nabalawuli abasuka kwiinkqubo zefayile ezahlukeneyo (amasebe ahlukeneyo) ukuba zigqithe ngokuphandle, zenza inkqubo yefayile ehambelanayo.

Esinye sezizathu zokuba i-docker ilula kukuba isebenzisa umaleko onje. Xa utshintsha umfanekiso, njengokuhlaziya isicelo, umaleko omtsha wenziwa. Ke, ngaphandle kokutshintsha umfanekiso uphela okanye uwakhe ngokutsha, njengoko kuya kufuneka wenze ngomatshini obonakalayo, kuphela umaleko owongeziweyo okanye ohlaziyiweyo. Kwaye akufuneki usasaze wonke umfanekiso omtsha, kuphela uhlaziyo olusasazwayo, okwenza kube lula kwaye ngokukhawuleza ukusabalalisa imifanekiso.

Kwintliziyo yawo wonke umfanekiso ngumfanekiso osisiseko. Umzekelo, ubuntu, umfanekiso osisiseko ka-Ubuntu, okanye i-fedora, umfanekiso osisiseko wokuhanjiswa kwe-Fedora. Ungasebenzisa imifanekiso njengesiseko sokwenza imifanekiso emitsha. Umzekelo, ukuba unomfanekiso we-apache, ungawusebenzisa njengomfanekiso osisiseko kwizicelo zakho zewebhu.

Phawula! I-Docker ihlala itsala imifanekiso kwi-Docker Hub registry.

Imifanekiso yeDocker inokwenziwa kule mifanekiso isisiseko; sibiza amanyathelo okwenza le mifanekiso yemiyalelo. Umyalelo ngamnye wenza umfanekiso omtsha okanye inqanaba. Imiyalelo iya kuba yile ilandelayo:

  • sebenzisa umyalelo
  • Ukongeza ifayile okanye ulawulo
  • ukudala imo eguquguqukayo
  • imiyalelo yento omawuyiqhube xa isikhongozeli salo mfanekiso sindululwa

Le miyalelo igcinwe kwifayile Dockerfile. UDocker ufunda oku Dockerfile, xa usakha umfanekiso, yenza le miyalelo kwaye ibuyisela umfanekiso wokugqibela.

Isebenza njani irejistri yedokhi?

Irejistri yindawo yokugcina imifanekiso yedocker. Nje ukuba umfanekiso wenziwe, ungawupapasha kubhaliso lukawonke-wonke lwe-Docker Hub okanye kubhaliso lwakho lomntu.

Ngomthengi we-docker, unokukhangela imifanekiso esele ipapashiwe kwaye uyikhuphele kumatshini wakho wedocker ukwenza izikhongozeli.

I-Docker Hub ibonelela ngoovimba bemifanekiso yoluntu neyabucala. Ukukhangela kunye nokukhuphela imifanekiso kwiindawo zokugcina zikawonkewonke kuyafumaneka kuye wonke umntu. Imixholo yogcino lwabucala ayiqukwanga kwiziphumo zophendlo. Kwaye nguwe kuphela kunye nabasebenzisi bakho abanokufumana le mifanekiso kwaye benze iziqulathi kubo.

Sisebenza njani isikhongozeli?

Isikhongozeli sinenkqubo yokusebenza, iifayile zomsebenzisi, kunye nemetadata. Njengoko sisazi, isikhongozeli ngasinye senziwe ngomfanekiso. Lo mfanekiso uxelela i-docker ukuba yintoni ekwisikhongozeli, yeyiphi inkqubo ekufuneka iqalwe, xa isikhongozeli siqala, kunye nenye idatha yoqwalaselo. Umfanekiso weDocker ufundwa kuphela. Xa idocker iqala isikhongozeli, yenza umaleko wokufunda/wobhala phezu komfanekiso (usebenzisa inkqubo yefayile yomanyano njengoko kuchaziwe ngaphambili) apho isicelo sinokuqhutywa khona.

Kwenzeka ntoni xa isikhongozeli siqala?

Okanye usebenzisa inkqubo docker, okanye usebenzisa i-RESTful API, umxhasi wedokhi uxelela i-docker daemon ukuba iqale isikhongozeli.

$ sudo docker run -i -t ubuntu /bin/bash

Makhe sijonge lo myalelo. Umxhasi uqaliswa ngokusebenzisa umyalelo docker, kunye nokhetho run, ethi i-container entsha iya kusungulwa. Ezona mfuno zisezantsi zokuqhuba isikhongozeli zezi mpawu zilandelayo:

  • ngowuphi umfanekiso oza kuwusebenzisa ukwenza isikhongozeli. Kwimeko yethu ubuntu
  • Umyalelo ofuna ukuwubaleka xa isikhongozeli siqaliswa. Kwimeko yethu /bin/bash

Kwenzeka ntoni phantsi kwehood xa siqhuba lo myalelo?

UDocker, ngokulandelelana, wenza oku kulandelayo:

  • Khuphela umfanekiso wobuntu: idocker ijonga ukufumaneka komfanekiso ubuntu kumatshini wendawo, kwaye ukuba ayikho, yikhuphele kuyo Ihabhu yedokodo. Ukuba kukho umfanekiso, uwusebenzisa ukwenza isitya;
  • yenza isikhongozeli: xa umfanekiso ufunyenwe, i-docker iwusebenzisa ukwenza isitya;
  • iqala indlela yefayile kwaye inyuse umgangatho wokufunda-kuphela: isikhongozeli senziwe kwindlela yefayile kwaye umfanekiso wongezwa kwinqanaba lokufunda kuphela;
  • iqalisa inethiwekhi/ibhulorho: yenza ujongano lwenethiwekhi oluvumela idocker ukuba inxibelelane nomatshini wokusingatha;
  • Ukuseta idilesi yeIP: ufumana kwaye usete idilesi;
  • Iqala inkqubo echaziweyo: isungula isicelo sakho;
  • Iinkqubo kwaye ivelise imveliso kwisicelo sakho: idibanisa kwaye ifake igalelo elisezantsi lesicelo sakho, imveliso, kunye nomsinga wemposiso ukuze ukwazi ukulandelela indlela isicelo sakho esiqhuba ngayo.

Ngoku unesikhongozeli esisebenzayo. Unokulawula isikhongozeli sakho, unxibelelane nesicelo sakho. Xa uthatha isigqibo sokumisa isicelo, cima isikhongozeli.

Iiteknoloji ezisetyenzisiweyo

I-Docker ibhalwe kwi-Go kwaye isebenzisa ezinye iimpawu ze-Linux kernel ukuphumeza ukusebenza okungentla.

Izithuba zamagama

UDocker usebenzisa itekhnoloji namespaces ukulungelelanisa iindawo zokusebenza ezizimeleyo, esizibiza ngokuba zizikhongozeli. Xa siqala isikhongozeli, idocker yenza iseti yeendawo zamagama zeso sikhongozeli.

Oku kudala umaleko owodwa, kunye nomba ngamnye wesikhongozeli osebenza kwindawo yawo yamagama kwaye ungenalo ufikelelo kwinkqubo yangaphandle.

Uluhlu lwezithuba zamagama ezisetyenziswa ngudokhi:

  • pid: ukwahlula inkqubo;
  • umnatha: yokulawula ujongano lwenethiwekhi;
  • ipc: ukulawula izixhobo ze-IPC. (ICP: I-InterProccess Communication);
  • mnt: ukulawula iindawo zokunyuka;
  • i-UTC: ukwahlula ikernel kunye nolawulo lwenguqulelo yokuveliswa (UTC: Unix inkqubo yokwabelana ngexesha).

Amaqela olawulo

UDocker usebenzisa itekhnoloji cgroups okanye amaqela olawulo. Isitshixo sokusebenzisa isicelo sodwa kukubonelela ngesicelo kuphela ngezibonelelo ofuna ukuzinikezela. Oku kuqinisekisa ukuba izitya ziya kuba ngabamelwane abalungileyo. Amaqela olawulo akuvumela ukuba wabelane ngezixhobo ze-hardware ezikhoyo kwaye, ukuba kuyimfuneko, ubeke imida kunye nezithintelo. Umzekelo, nciphisa inani elinokwenzeka lememori yesingxobo.

Inkqubo yeFayile yoManyano

Ifayile yoManyano yeSysem okanye iUnionFS yinkqubo yefayile esebenza ngokudala iileya, iyenza ibekhaphukhaphu kwaye ikhawuleze. IDocker isebenzisa iUnionFS ukwenza iibhloko apho isingxobo sakhiwe khona. IDocker inokusebenzisa iindidi ezininzi zeUnionFS eziquka: AUFS, btrfs, vfs kunye neDeviceMapper.

Iifomathi zesikhongozeli

I-Docker idibanisa la macandelo kwi-wrapper esiyibiza ngokuba yifomati yesikhongozeli. Ifomati emiselweyo ibizwa ngokuba libcontainer. I-Docker ikwaxhasa ifomati yesikhongozeli semveli kwiLinux usebenzisa I-LXC. Kwixesha elizayo, iDocker inokuxhasa ezinye iifomati zesikhongozeli. Umzekelo, ukudibanisa neeJele ze-BSD okanye iiNdawo zeSolaris.

umthombo: www.habr.com

Yongeza izimvo