A na m eji Docker ọtụtụ ọnwa ugbu a iji hazie usoro mmepe / nnyefe nke ọrụ weebụ. Ana m enye ndị na-agụ Habrakhabr ntụgharị asụsụ nke edemede mmalite gbasara docker - "Nghọta docker".
Kedu ihe bụ docker?
Docker bụ ikpo okwu mepere emepe maka ịmepụta, ibufe na ngwa arụ ọrụ. Emebere Docker iji wepụta ngwa gị ngwa ngwa. Site na docker, ị nwere ike ihichapụ ngwa gị site na akụrụngwa gị wee were akụrụngwa dịka ngwa a na-achịkwa. Docker na-enyere gị aka ibubata koodu gị ngwa ngwa, nwalee ngwa ngwa, bupu ngwa ngwa ngwa, wee belata oge n'etiti koodu ederede na koodu ịgba ọsọ. Docker na-eme nke a site na ikpo okwu njiri mara akpa dị fechaa, na-eji usoro na akụrụngwa na-enyere gị aka ijikwa ma kwado ngwa gị.
Na isi ya, docker na-enye gị ohere ịme ihe fọrọ nke nta ka ọ bụrụ ngwa ọ bụla, nke dịpụrụ adịpụ n'ime akpa. Kewapụ nke ọma na-enye gị ohere ịme ọtụtụ akpa n'otu onye ọbịa n'otu oge. Ọdịdị dị arọ nke akpa ahụ, nke na-agba ọsọ na-enweghị ibu ọzọ nke hypervisor, na-enye gị ohere ịnweta ihe ndị ọzọ na ngwaike gị.
Igwe ikpo okwu na akụrụngwa nwere ike ịba uru n'ọnọdụ ndị a:
na-akwakọba ngwa gị (na ihe ndị ị na-eji) n'ime arịa docker;
nkesa na nnyefe nke arịa ndị a na ndị otu gị maka mmepe na ule;
Ịtọpụta arịa ndị a na saịtị mmepụta gị, ma na ebe data na n'ígwé ojii.
Kedu ihe m nwere ike iji docker maka?
Bipụta ngwa gị ngwa ngwa
Docker dị mma maka ịhazi okirikiri mmepe. Docker na-enye ndị mmepe ohere iji ngwa na ọrụ were akpa akpa mpaghara. Nke emesia na-enye gị ohere ijikọ na usoro nke ntinye aka na ntinye ọrụ na-aga n'ihu.
Dịka ọmụmaatụ, ndị mmepe gị na-ede koodu na mpaghara wee kesaa ndị ọrụ ibe ha nchịkọta mmepe ha (otu ihe oyiyi Docker). Mgbe ha dị njikere, ha na-atụgharị koodu na arịa gaa na saịtị nnwale wee mee ule ọ bụla dị mkpa. Site na saịtị nnwale, ha nwere ike izipu koodu na onyonyo na mmepụta.
Ọ dị mfe ịtọpụta na mkpughe
Ikpokoro akpa akpa docker na-eme ka ọ dị mfe ibufe ibu ọrụ gị. Akpa Docker nwere ike na-agba ọsọ na igwe mpaghara gị, ma ọ bụ n'ezie ma ọ bụ na igwe mebere na ebe data, ma ọ bụ n'igwe ojii.
Mbugharị na ọdịdị dị fechaa nke docker na-eme ka ọ dị mfe ijikwa ike ọrụ gị. Ị nwere ike iji docker ka ibugharị ma ọ bụ mechie ngwa ma ọ bụ ọrụ gị. Ọsọ nke docker na-enye ohere ime nke a ozugbo ozugbo.
Ibu dị elu yana ibu ndị ọzọ akwụ ụgwọ
Docker dị fechaa na ngwa ngwa. Ọ na-enye ihe ọzọ na-agbanwe agbanwe, dị ọnụ ala karịa igwe mebere hypervisor dabere. Ọ bara uru karịsịa na gburugburu nnukwu ibu, dịka ọmụmaatụ, mgbe ị na-emepụta igwe ojii ma ọ bụ ikpo okwu-dị ka ọrụ. Mana ọ bara uru maka ngwa obere na ọkara mgbe ịchọrọ ị nwetakwu ihe na akụrụngwa ị nwere.
Ngwa isi Docker
Docker nwere isi ihe abụọ:
Docker: ikpo okwu mepere emepe nke mepere emepe;
Docker Hub: ikpo okwu anyị dị ka ọrụ maka ikesa na ijikwa arịa Docker.
Mara! A na-ekesa Docker n'okpuru ikike Apache 2.0.
Docker architecture
Docker na-eji nhazi ihe nkesa nke ndị ahịa. Onye ahịa Docker na-ekwurịta okwu na Docker daemon, nke na-ebu ibu nke imepụta, ịgba ọsọ na ikesa arịa gị. Ma onye ahịa na ihe nkesa nwere ike na-agba ọsọ n'otu usoro, ị nwere ike jikọọ onye ahịa na daemon docker dịpụrụ adịpụ. Onye ahịa na ihe nkesa na-ekwurịta okwu site na oghere ma ọ bụ RESTful API.
Docker daemon
Dị ka e gosiri na eserese, daemon na-agba ọsọ na igwe nnabata. Onye ọrụ anaghị emekọrịta ihe na sava ozugbo, mana ọ na-eji onye ahịa maka nke a.
Onye ahịa Docker
Onye ahịa Docker, mmemme docker, bụ isi interface na Docker. Ọ na-enweta iwu n'aka onye ọrụ wee soro docker daemon na-emekọrịta ihe.
N'ime docker
Iji ghọta ihe docker nwere, ị kwesịrị ịma gbasara ihe atọ:
onyonyo
ndekọ
akpa
Foto
Ihe onyonyo Docker bụ ndebiri naanị ọgụgụ. Dịka ọmụmaatụ, onyonyo a nwere ike ịnwe sistemụ arụmọrụ Ubuntu nwere Apache yana ngwa dị na ya. A na-eji ihe onyonyo mepụta arịa. Docker na-eme ka ọ dị mfe ịmepụta onyonyo ọhụrụ, melite ndị dị adị, ma ọ bụ ị nwere ike budata onyonyo nke ndị ọzọ mepụtara. Onyonyo bụ akụkụ nke ihe nrụpụta docker.
Ndebanye aha
Ndebanye aha Docker na-echekwa onyonyo. Enwere ndekọ ọha na nke nzuzo nke ị nwere ike ibudata ma ọ bụ bulite onyonyo. Ndebanye aha Docker ọha bụ Ogwe Docker. Enwere nnukwu nchịkọta ihe oyiyi echekwara n'ebe ahụ. Dị ka ị maara, ị nwere ike ịmepụta ihe oyiyi ma ọ bụ ị nwere ike iji ihe oyiyi ndị ọzọ kere. Ndebanye aha bụ mpaghara nkesa.
.Онтейнеры
Akpa dị ka akwụkwọ ndekọ aha. Ngwa nwere ihe niile ngwa chọrọ ka ọ na-agba. A na-emepụta akpa ọ bụla site na onyonyo. Enwere ike ịmepụta, malite, kwụsị, ịkwaga ma ọ bụ ihichapụ arịa. Akpa ọ bụla dịpụrụ adịpụ ma na-enye ikpo okwu echekwara maka ngwa ahụ. Akpa bụ akụkụ nke ọrụ ahụ.
Yabụ kedu ka Docker si arụ ọrụ?
Ruo ugbu a, anyị maara na:
anyị nwere ike ịmepụta ihe oyiyi nke ngwa anyị dị;
anyị nwere ike ịmepụta arịa si na ihe oyiyi na-agba ọsọ ngwa;
Anyị nwere ike kesaa onyonyo site na Docker Hub ma ọ bụ ndekọ onyonyo ọzọ.
Ka anyị hụ otú ihe ndị a si kwekọọ ọnụ.
Kedu ka ihe onyonyo a si arụ ọrụ?
Anyị amatalarị na onyonyo bụ ndebiri naanị ọgụgụ nke e si kee akpa. Onyonyo ọ bụla nwere usoro ọkwa. Docker na-eji usoro faịlụ otu iji jikọta ọkwa ndị a n'otu onyonyo. Sistemụ faịlụ Union na-enye ohere faịlụ na akwụkwọ ndekọ aha sitere na sistemụ faịlụ dị iche iche (alaka dị iche iche) ka ha na-adaba n'ụzọ doro anya, na-ekepụta usoro faịlụ na-ejikọta ọnụ.
Otu ihe kpatara docker ji dị fechaa bụ n'ihi na ọ na-eji akwa dị ka nke a. Mgbe ị gbanwere onyonyo a, dị ka imelite ngwa, a na-emepụta oyi akwa ọhụrụ. Yabụ, na-enweghị dochie onyonyo niile ma ọ bụ wughachi ya, dịka ị nwere ike iji igwe mebere, naanị akwa akwa ka etinyere ma ọ bụ melite ya. Na ịkwesighi ikesa ihe oyiyi ọhụrụ ahụ dum, naanị mmelite na-ekesa, na-eme ka ọ dị mfe na ngwa ngwa ikesa ihe oyiyi.
N'ime obi nke ihe oyiyi ọ bụla bụ ihe oyiyi bụ isi. Dịka ọmụmaatụ, ubuntu, isi ihe oyiyi nke Ubuntu, ma ọ bụ fedora, isi ihe oyiyi nke nkesa Fedora. Ịnwekwara ike iji onyonyo dịka ntọala maka imepụta onyonyo ọhụrụ. Dịka ọmụmaatụ, ọ bụrụ na ị nwere ihe oyiyi apache, ị nwere ike iji ya dị ka ihe ndabere maka ngwa weebụ gị.
Mara! Docker na-adọtakarị onyonyo site na ndekọ Docker Hub.
Enwere ike ịmepụta ihe oyiyi docker site na ihe oyiyi ntọala ndị a; anyị na-akpọ usoro iji mepụta ntuziaka foto ndị a. Ntuziaka ọ bụla na-emepụta onyonyo ma ọ bụ ọkwa ọhụrụ. Ntuziaka ga-abụ nke a:
ọsọ iwu
na-agbakwụnye faịlụ ma ọ bụ ndekọ
ịmepụta mgbanwe gburugburu ebe obibi
ntụziaka maka ihe ị ga-agba ọsọ mgbe akpa ihe oyiyi a malitere
A na-echekwa ntuziaka ndị a na faịlụ Dockerfile. Docker gụrụ nke a Dockerfile, mgbe ị na-ewu ihe onyonyo a, mebie ntuziaka ndị a wee weghachi onyonyo ikpeazụ.
Kedu ka ndekọ docker si arụ ọrụ?
Ndebanye aha bụ ebe nchekwa maka onyonyo docker. Ozugbo emepụtara onyonyo a, ị nwere ike ibipụta ya na ndekọ Docker Hub ọha ma ọ bụ na ndekọ nkeonwe gị.
Site na onye ahịa docker, ị nwere ike chọọ onyonyo ebipụtalarị wee budata ha na igwe docker gị ka imepụta arịa.
Docker Hub na-enye ebe nchekwa onyonyo ọha na nke onwe. Ịchọ na nbudata onyonyo sitere na ebe nchekwa ọha dị maka onye ọ bụla. Agụnyeghi ọdịnaya nke nchekwa nkeonwe na nsonaazụ ọchụchọ. Na naanị gị na ndị ọrụ gị nwere ike ịnata onyonyo ndị a wee mepụta arịa n'aka ha.
Kedu ka akpa si arụ ọrụ?
Otu akpa nwere sistemụ arụmọrụ, faịlụ ndị ọrụ na metadata. Dị ka anyị maara, a na-emepụta akpa ọ bụla site na ihe oyiyi. Onyonyo a na-agwa docker ihe dị na akpa, usoro ị ga-amalite, mgbe akpa ahụ malitere, yana data nhazi ndị ọzọ. Ihe onyonyo Docker bụ naanị ọgụgụ. Mgbe docker na-amalite akpa, ọ na-emepụta oyi akwa na-agụ / dee n'elu ihe oyiyi ahụ (iji usoro faịlụ otu dị ka ekwuru na mbụ) nke enwere ike ịme ngwa ahụ.
Kedu ihe na-eme mgbe akpa ahụ malitere?
Ma ọ bụ iji mmemme docker, ma ọ bụ iji API RESTful, onye ahịa docker na-agwa docker daemon ka ọ malite akpa ahụ.
$ sudo docker run -i -t ubuntu /bin/bash
Ka anyị leba anya n'iwu a. A na-eji iwu ahụ malite onye ahịa ahụ docker, na nhọrọ run, nke na-ekwu na a ga-ebuba akpa ọhụrụ. Opekempe chọrọ iji rụọ akpa bụ àgwà ndị a:
iwu nke ịchọrọ ịgba ọsọ mgbe akpa ahụ malitere. N'ọnọdụ anyị /bin/bash
Kedu ihe na-eme n'okpuru mkpuchi mgbe anyị na-eme iwu a?
Docker, n'usoro, na-eme ihe ndị a:
budata onyonyo ubuntu: docker na-enyocha ihe oyiyi dị ubuntu na igwe mpaghara, ma ọ bụrụ na ọ nọghị, wee budata ya Ogwe Docker. Ọ bụrụ na e nwere ihe oyiyi, ọ na-eji ya emepụta akpa;
na-emepụta akpa: mgbe enwetara onyonyo a, docker na-eji ya mepụta akpa;
na-ebido sistemụ faịlụ wee bulie ọkwa naanị ọgụgụ: A na-emepụta akpa ahụ na usoro faịlụ ma tinye ihe oyiyi ahụ na ọkwa ọgụgụ naanị;
malite netwọk/akwa: na-emepụta netwọk netwọk nke na-enye ohere docker ka ya na igwe nnabata na-ekwurịta okwu;
Ịtọlite adreesị IP: chọta ma tọọ adreesị;
Na-amalite usoro akọwapụtara: malite ngwa gị;
Na-ahazi ma na-emepụta ihe sitere na ngwa gị: jikọọ na dekọọ ndenye ọkọlọtọ, mmepụta na njehie ngwa gị ka ị nwee ike soro ka ngwa gị si arụ ọrụ.
Ị nwere akpa na-arụ ọrụ ugbu a. Ị nwere ike ijikwa akpa gị, jikọọ ngwa gị. Mgbe ị kpebiri ịkwụsị ngwa ahụ, hichapụ akpa ahụ.
Teknụzụ eji
Edere Docker na Go ma jiri ụfọdụ atụmatụ nke kernel Linux mejuputa ọrụ dị n'elu.
Oghere aha
Docker na-eji teknụzụ namespaces iji hazie ebe ọrụ dịpụrụ adịpụ, nke anyị na-akpọ arịa. Mgbe anyị malitere akpa, docker na-emepụta oghere aha maka akpa ahụ.
Nke a na-emepụta oyi akwa dịpụrụ adịpụ, na akụkụ ọ bụla nke akpa na-agba ọsọ na aha nke ya ma ghara ịnweta usoro mpụga.
Docker na-ejikwa teknụzụ cgroups ma ọ bụ otu njikwa. Isi ihe na-eme ngwa na-anọpụ iche bụ ịnye ngwa ahụ naanị akụrụngwa ịchọrọ ịnye. Nke a na-eme ka o doo anya na akpa ndị ahụ ga-abụ ezigbo ndị agbata obi. Otu njikwa na-enye gị ohere ịkekọrịta akụrụngwa ngwaike dị yana, ọ bụrụ na ọ dị mkpa, tọọ oke na mmachi. Dịka ọmụmaatụ, kpachie oke ebe nchekwa maka akpa.
Sistemụ faịlụ Union
Union File Sysem ma ọ bụ UnionFS bụ sistemụ faịlụ na-arụ ọrụ site na ịmepụta akwa akwa, na-eme ka ọ dị fechaa na ngwa ngwa. Docker na-eji UnionFS mepụta ngọngọ nke ejiri wuo akpa ahụ. Docker nwere ike iji ọtụtụ ụdị dị iche iche nke UnionFS gụnyere: AUFS, btrfs, vfs na DeviceMapper.
Ụdị akpa
Docker na-ejikọta ihe ndị a n'ime ihe mkpuchi anyị na-akpọ usoro akpa. A na-akpọ usoro ndabara libcontainer. Docker na-akwado usoro akpa ọdịnala na Linux site na iji LXC. N'ọdịnihu, Docker nwere ike ịkwado ụdị akpa ndị ọzọ. Dịka ọmụmaatụ, ijikọ na BSD Jails ma ọ bụ Mpaghara Solaris.