Fahamka Docker

Waxaan isticmaalayay Docker dhowr bilood hadda si aan u habeeyo habka horumarinta/ gaarsiinta mashaariicda shabakada. Waxaan siinayaa akhristayaasha Habrakhabr tarjumaad maqaalka hordhaca ah ee ku saabsan docker- "Fahamka docker".

Waa maxay docker?

Docker waa goob furan oo loogu talagalay horumarinta, gaarsiinta, iyo ka shaqaynta codsiyada. Docker waxaa loogu talagalay inuu ku keeno codsiyadaada si dhakhso leh. Docker-ka, waxaad kala sooci kartaa codsigaaga kaabayaashaaga oo waxaad ula dhaqmi kartaa kaabayaasha sidii codsi la maareeyay. Docker wuxuu kaa caawinayaa inaad si dhakhsiyo leh kood u soo dirto, u tijaabiso si dhakhsiyo leh, u dirto codsiyada degdega ah, oo aad yarayso wakhtiga u dhexeeya kood qorista iyo socodsiinta koodka. Docker waxa uu tan ku sameeyaa weel fudfudud, isaga oo isticmaalaya hababka iyo adeegyada kaa caawinaya maaraynta iyo martigelinta codsiyadaada.

Xuddunta, docker wuxuu kuu ogolaanayaa inaad socodsiiso ku dhawaad ​​codsi kasta, si badbaado leh ugu go'doonsan weelka. Go'doominta sugan waxay kuu ogolaanaysaa inaad ku shubto weelal badan isla markiba. Dabeecadda khafiifka ah ee weelka, kaas oo ku shaqeeya iyada oo aan lahayn culeys dheeraad ah oo ku saabsan hypervisor, waxay kuu ogolaaneysaa inaad wax badan ka hesho qalabkaaga.

Qalabka wax-soo-saarka weelka iyo agabku waxay faa'iido u yeelan karaan xaaladaha soo socda:

  • baakadaha codsigaaga (iyo qaybaha aad isticmaashid) weelasha docker-ka;
  • qaybinta iyo gaarsiinta weelashan kooxahaaga si ay u horumariyaan iyo tijaabiyaan;
  • Dhigista weelashan goobahaaga wax soo saarka, labadaba xarumaha xogta iyo daruuraha.

Maxaan u isticmaali karaa docker?

Degdeg u daabac codsiyadaada

Docker wuxuu ku fiican yahay habeynta wareegga horumarinta. Docker waxay u ogolaataa horumariyayaasha inay ku socodsiiyaan weelasha maxalliga ah oo wata codsiyada iyo adeegyada. Kaas oo dabadeed kuu oggolaanaya inaad la mid noqoto habka is-dhexgalka joogtada ah iyo hawlgelinta socodka shaqada.

Tusaale ahaan, horumariyayaashu waxay ku qoraan kood gudaha gudaha waxayna la wadaagaan xidhmooyinkooda horumarineed (goob sawir Docker ah) asxaabta. Markay diyaar noqdaan, waxay ku riixaan koodka iyo weelasha goobta imtixaanka waxayna sameeyaan wixii imtixaano ah ee lagama maarmaanka ah. Laga soo bilaabo goobta imtixaanka, waxay u diri karaan koodka iyo sawirada wax soo saarka.

Si fudud u dejin iyo furfurid

Meesha weelka ku salaysan ee docker-ka ayaa sahlaysa in la soo dejiyo rarkaaga. Weelasha docker-ku waxay ku shaqayn karaan mishiinka deegaankaaga, mid dhab ah ama mishiin dalwad ah oo ku yaal xarunta xogta, ama daruuraha.

Qaadashada iyo dabeecadda fudud ee dockerka ayaa sahlaysa in si firfircooni leh loo maareeyo culayska shaqadaada. Waxaad isticmaali kartaa docker si aad u geyso ama u damiso codsigaaga ama adeegyadaada. Xawaaraha docker-ka wuxuu ogolaanayaa in tan la sameeyo waqtiga dhabta ah ee dhow.

Culaysyo badan iyo culaysyo badan

Docker waa fufud wuuna dheereeyaa. Waxay bixisa adkeysi, kharash-ool ah beddelka mishiinnada farsamada ku salaysan hypervisor. Waxay si gaar ah faa'iido u leedahay deegaanka culeyska sareeyo, tusaale ahaan, marka aad abuureyso daruur kuu gaar ah ama madal-adeeg ahaan. Laakiin sidoo kale waxay faa'iido u leedahay codsiyada yaryar iyo kuwa dhexdhexaadka ah markaad rabto inaad wax badan ka hesho kheyraadka aad haysato.

Qaybaha ugu muhiimsan ee Docker

Docker wuxuu ka kooban yahay laba qaybood oo waaweyn:

  • Docker: madal ilbaxnimo oo furan;
  • Docker Hub: Madal-adeeggayada qaybinta iyo maaraynta weelasha Docker.

Ogow! Docker waxaa lagu qaybiyaa shatiga Apache 2.0.

Dhismaha Docker

Docker wuxuu isticmaalaa qaab-dhismeedka macmiilka-server. Macmiilka Docker wuxuu la xidhiidhaa Docker daemon, kaas oo qaadaya culayska abuurista, socodsiinta, iyo qaybinta weelashaada. Labada macmiil iyo server-kuba waxay ku shaqayn karaan nidaam isku mid ah, waxaad ku xidhi kartaa macmiilka daemon docker fog. Macmiilka iyo serferka waxay ku wada xidhiidhaan socket ama API RESTful.

Fahamka Docker

Docker daemon

Sida ku cad jaantuska, daemon-ku wuxuu ku socdaa mashiinka martida loo yahay. Isticmaaluhu si toos ah ulama falgalo server-ka, laakiin waxa uu macmiilka u isticmaalaa tan.

Docker macmiilka

Macmiilka Docker, barnaamijka docker, waa isku xirka ugu weyn ee Docker. Waxay amarro ka heshaa isticmaalaha waxayna la falgashaa docker daemon.

Gudaha docker

Si aad u fahamto waxa docker ka kooban yahay, waxaad u baahan tahay inaad wax ka ogaato saddex qaybood:

  • sawiro
  • diiwaanka
  • weelasha

Sawirro

Sawirka Docker waa qaab-akhris-kaliya. Tusaale ahaan, sawirka waxaa ku jiri kara nidaamka hawlgalka Ubuntu oo leh Apache iyo codsi ku yaal. Sawirada waxaa loo isticmaalaa in lagu sameeyo weel. Docker wuxuu fududeeyaa abuurista sawirro cusub, cusboonaysii kuwa jira, ama waxaad soo dejisan kartaa sawirro ay sameeyeen dad kale. Sawiradu waa qaybo ka mid ah dhisidda docker-ka.

Diiwaanka

Diiwaanka Docker wuxuu kaydiyaa sawirada Waxaa jira diiwaanno dadweyne iyo kuwo gaar ah oo aad ka soo dejisan karto ama ka soo gelin karto sawirrada. Diiwaanka Docker-ka dadweynaha waa Xarunta Docker. Waxaa jira sawirro aad u badan oo halkaas lagu keydiyay. Sida aad ogtahay, sawirada waxaa abuuri kara adiga ama waxaad isticmaali kartaa sawirro ay sameeyeen kuwa kale. Diiwaangelintu waa qayb qaybinta.

Konteenarada

Konteenarada waxay la mid yihiin hagaha. Weelasha waxaa ku jira wax kasta oo codsigu u baahan yahay si uu u shaqeeyo. Weel kasta waxaa laga sameeyay sawir. Weeladaha waa la abuuri karaa, bilaabi karaa, joojin karaa, guuri karaa ama la tirtiri karaa. Weel kastaa wuu go'doonsan yahay wuxuuna bixiyaa meel ammaan ah codsiga. Konteenarada ayaa ah qaybaha shaqada.

Haddaba sidee buu Docker u shaqeeyaa?

Ilaa hadda waxaan ognahay in:

  • waxaan samayn karnaa sawiro ay codsiyadeenu ku yaalaan;
  • waxaan ka abuuri karnaa weelasha sawirada si aan u socodsiino codsiyada;
  • Waxaan ku qaybin karnaa sawirada iyada oo loo marayo Docker Hub ama sawir kale oo diiwaan gelin ah.

Aan aragno sida qaybahaas ay isugu xiran yihiin.

Sidee buu sawirku u shaqeeyaa?

Waxaan horey u ognahay in sawirku yahay qaab wax-akhris oo kaliya kaas oo weel laga sameeyay. Sawir kastaa wuxuu ka kooban yahay heerar kala duwan. Docker wuxuu isticmaalaa nidaamka faylka ururka in la isku daro heerarkan hal sawir. Nidaamka faylka ururka wuxuu u oggolaanayaa faylasha iyo hagayaasha nidaamyada faylalka kala duwan (laamo kala duwan) inay si daah-furan isugu dul-maanaan karaan, abuuraan nidaam faylal oo isku xiran.

Mid ka mid ah sababaha uu docker-ku u fudud yahay waa sababta oo ah waxay isticmaashaa lakabyo sidan oo kale ah. Markaad beddesho sawirka, sida cusboonaysiinta codsiga, lakab cusub ayaa la abuurayaa. Sidaa darteed, adigoon bedelin sawirka oo dhan ama dib u dhis, sida laga yaabo inaad ku sameyso mashiinka farsamada, kaliya lakabka ayaa lagu daraa ama la cusbooneysiiyaa. Oo uma baahnid inaad qaybiso sawirka cusub oo dhan, kaliya cusboonaysiinta ayaa la qaybiyaa, taas oo sahlaysa oo dhaqso u qaybinaysa sawirada.

Wadnaha sawir kasta waa sawir aasaasi ah. Tusaale ahaan, ubuntu, sawirka aasaasiga ah ee Ubuntu, ama fedora, sawirka aasaasiga ah ee qaybinta Fedora. Waxa kale oo aad u isticmaali kartaa sawirada saldhig ahaan abuurista sawirro cusub. Tusaale ahaan, haddii aad leedahay sawirka apache, waxaad u isticmaali kartaa sida sawirka aasaasiga ah ee codsiyadaada shabakadda.

Ogow! Docker wuxuu caadi ahaan sawirada ka soo jiidaa diiwaanka Docker Hub.

Sawirada docker waxaa laga abuuri karaa sawiradan salka; waxaan ugu yeernaa tillaabooyinka si loo abuuro tilmaamahan sawirada. Tilmaan kastaa waxay abuurtaa sawir ama heer cusub. Tilmaamuhu waxay noqon doonaan kuwa soo socda:

  • amar ku orod
  • ku darida fayl ama tusaha
  • abuurista doorsoome deegaan
  • tilmaamo ku saabsan waxa la qabanayo marka weelka sawirkan la soo saaro

Tilmaamahan waxaa lagu kaydiyaa fayl Dockerfile. Docker ayaa akhriya tan Dockerfile, marka aad dhisto sawirka, fulinta tilmaamahan oo soo celisa sawirka ugu dambeeya.

Sidee buu u shaqeeyaa diiwaanka docker?

Diiwaangelintu waa kaydka sawirada docker. Marka sawirka la sameeyo, waxaad ku daabici kartaa diiwaanka Docker Hub ee dadweynaha ama diiwaanka gaarka ah.

Macmiilka docker-ka, waxaad ka raadin kartaa sawirro horay loo daabacay oo aad u soo dejisan kartaa mashiinkaaga docker si aad u abuurto weel.

Docker Hub waxay bixisa meelaha sawirada guud iyo kuwa gaarka ah. Raadinta iyo soo dejinta sawirada meelaha dadweynaha waa u diyaar qof walba. Waxa ku jira kaydinta gaarka ah kuma jiraan natiijooyinka raadinta. Kaliya adiga iyo isticmaalayaashaada ayaa heli kara sawiradan oo waxaad ka abuuri kartaa weelal.

Sidee buu weel u shaqeeyaa?

Weelku wuxuu ka kooban yahay nidaamka hawlgalka, faylasha isticmaalaha, iyo xogta badan. Sida aan ognahay, weel kasta waxaa laga sameeyay sawir. Sawirkaani waxa uu sheegayaa docker waxa ku jira weelka, habka la bilaabayo, marka weelku bilaabmo, iyo xogta qaabeynta kale. Sawirka Docker waa akhris-kaliya. Marka docker-ku bilaabo weelka, wuxuu abuuraa lakab wax-akhris/qoraal ah oo ku dul yaal sawirka (iyadoo la adeegsanayo nidaamka faylka ururka sida horay loo sheegay) kaas oo codsiga lagu socodsiin karo.

Maxaa dhacaya marka weelku bilowdo?

Ama isticmaal barnaamijka docker, ama isticmaalaya API-ga RESTful, macmiilka docker wuxuu u sheegaa daemonka docker inuu bilaabo weelka.

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

Aan eegno amarkan. Macmiilka waxaa lagu bilaabay iyadoo la isticmaalayo amarka docker, oo leh ikhtiyaar run, kaas oo sheegaya in konteenar cusub la soo saari doono. Shuruudaha ugu yar ee weelka lagu maamulayo waa sifooyinka soo socda:

  • sawirka loo isticmaalo si loo abuuro weelka. Xaaladeena ubuntu
  • amarka aad rabto in aad socodsiiso marka weelka la bilaabayo. Xaaladeena /bin/bash

Maxaa dhacaya hoosta daboolka markaan fulino amarkan?

Docker, siday u kala horreeyaan, wuxuu sameeyaa kuwan soo socda:

  • soo dejisa sawirka ubuntu: docker ayaa hubinaya in sawirka la heli karo ubuntu mashiinka maxalliga ah, iyo haddii aysan jirin, ka dibna ka soo dejiso Xarunta Docker. Haddii uu jiro sawir, waxay u isticmaashaa si ay u abuurto weel;
  • wuxuu abuuraa weel: marka sawirka la helo, docker wuxuu isticmaalaa si uu u sameeyo weel;
  • wuxuu bilaabaa nidaamka faylalka wuxuuna kor u qaadaa heerka akhris-kaliya: weelka waxaa lagu abuuray nidaamka faylka waxaana sawirka lagu daraa heerka akhrinta kaliya;
  • waxay bilawday shabakada/buundo: abuuraa shabakad iskuxiran oo u oggolaanaysa docker inuu la xiriiro mashiinka martida loo yahay;
  • Dejinta cinwaanka IP: helo oo dejiyo ciwaanka;
  • Wuxuu bilaabayaa habka la cayimay: bilaaba codsigaaga;
  • Geedi socodka oo soo saara wax soo saarka codsigaaga: isku xidha oo diiwaan gelisa gelinta caadiga ah ee codsigaaga, soo saarista, iyo qulqulka khaladka si aad ula socoto sida codsigaagu u socdo.

Hadda waxaad haysataa weel shaqaynaya. Waad maamuli kartaa weelkaaga, la falgali codsigaaga. Markaad go'aansato inaad joojiso codsiga, tirtir weelka.

Tignoolajiyada la isticmaalo

Docker wuxuu ku qoran yahay Go wuxuuna isticmaalaa qaar ka mid ah astaamaha kernel Linux si loo hirgeliyo shaqeynta kore.

Magacyada meelaha

Docker wuxuu isticmaalaa tignoolajiyada namespaces si loo habeeyo goobaha shaqada ee go'doonsan, oo aan ugu yeerno weelasha. Marka aan bilowno weelka, docker-ku wuxuu abuuraa meelo magacyo ah weelkaas.

Tani waxay abuurtaa lakab go'doonsan, iyada oo dhinac kasta oo weelku ku socdo magaciisa oo aan la helin nidaamka dibadda.

Liiska magacyada meelaha qaarkood ee docker isticmaalo:

  • pid: si loo go'doomiyo habka;
  • net: maaraynta isku xirka shabakadaha;
  • ipc: si loo maareeyo ilaha IPC. (ICP: Isgaarsiinta InterProccess);
  • mnt: si loo maareeyo meelaha buurta;
  • UTC: si loo go'doomiyo kernel-ka iyo kantaroolida jiilka nooca (UTC: Unix time sharinging system).

Kooxaha xakamaynta

Docker wuxuu kaloo isticmaalaa tignoolajiyada cgroups ama kooxaha xakameynaya. Furaha lagu socodsiiyo arjiga si gooni gooni ah waa inaad siiso codsiga kaliya agabyada aad rabto inaad bixiso. Tani waxay hubinaysaa in weelku noqon doonaan deris wanaagsan. Kooxaha xakamaynta waxay kuu oggolaanayaan inaad wadaagto agabka qalabka la heli karo iyo, haddii loo baahdo, dejiso xad iyo xaddidaad. Tusaale ahaan, xaddid xaddiga suurtogalka ah ee xusuusta weelka.

Nidaamka Faylka Ururka

Union File Sysem ama UnionFS waa nidaam faylal ah oo ku shaqeeya abuurista lakabyo, taasoo ka dhigaysa mid aad u fudud oo degdeg ah. Docker waxay isticmaashaa UnionFS si ay u abuurto baloogyada weelka laga dhisayo. Docker wuxuu isticmaali karaa dhowr nooc oo UnionFS ah oo ay ku jiraan: AUFS, btrfs, vfs iyo DeviceMapper.

Qaababka weelka

Docker wuxuu isku daraa qaybahan duubka waxaan ugu yeernaa qaabka weelka. Qaabka caadiga ah ayaa la yiraahdaa libcontainer. Docker sidoo kale wuxuu taageeraa qaabka weelka caadiga ah ee Linux isagoo isticmaalaya LXC. Mustaqbalka, Docker waxa laga yaabaa inay taageerto qaabab kale oo weel. Tusaale ahaan, ku biirinta Jeelasha BSD ama Aagga Solaris.

Source: www.habr.com

Add a comment