VM ma ọ bụ Docker?

Kedu otu ị ga-esi mara ma ịchọrọ Docker ọ bụghị VM? Ịkwesịrị ikpebi kpọmkwem ihe ịchọrọ ikewapụ. Ọ bụrụ na ịchọrọ ikewapụ sistemụ nwere akụrụngwa raara onwe ya nye yana ngwaike mebere, yabụ nhọrọ kwesịrị ịbụ VM. Ọ bụrụ na ịchọrọ ikewapụ ngwa na-agba ọsọ dị ka usoro sistemụ dị iche, ị ga-achọ Docker.

Yabụ kedu ihe dị iche n'etiti arịa Docker na VM?

Igwe mebere (VM) bụ a mebere kọmputa nwere niile mebere ngwaọrụ na a mebere diski ike na nke a ọhụrụ nọọrọ onwe OS arụnyere na mebere ngwaọrụ ọkwọ ụgbọala, ebe nchekwa njikwa na ndị ọzọ components. Ya bụ, anyị na-enweta abstraction nke ngwaike anụ ahụ nke na-enye anyị ohere ịme ọtụtụ kọmputa mebere n'otu kọmputa.
VM arụnyere nwere ike weghara oghere na diski kọmputa gị n'ụzọ dị iche iche:

  • Oghere diski ike edoziri, nke na-enye ohere ịnweta diski ike mebere ngwa ngwa ma zere nkewa faịlụ;
  • oke ebe nchekwa ike. Mgbe ị na-etinye ngwa agbakwunyere, a ga-ekenye ebe nchekwa n'ike maka ha ruo mgbe ọ ruru oke ego ekenyela ya.

The more virtual machines kwa nkesa, ka ohere ha na-ebuli, na-achọkwa mgbe niile nkwado maka gburugburu ebe obibi chọrọ ka gị ngwa na-agba ọsọ.

Docker bụ ngwanro maka ịmepụta ngwa dabere na akpa. Akpa na igwe mebere nwere uru yiri nke ahụ, mana ọ na-arụ ọrụ dị iche iche. Akpa na-ewe obere ohere n'ihi na... jikwaa ihe onwunwe ndị ọzọ nke sistemụ nnabata karịa VM, n'ihi na N'adịghị ka VM, ọ na-enye virtualization na OS larịị, ọ bụghị na ngwaike larịị. Usoro a na-ebute akara ukwu ebe nchekwa dị ala, ntinye ngwa ngwa, yana nfesa dị mfe.

Akpa ahụ na-enye usoro dị irè karị maka ịmepụta ngwa ngwa site n'inye oghere dị mkpa na usoro ndị ọbịa. Nke a na atụmatụ na-enye ohere containers ịkọrọ isi nke usoro, na onye ọ bụla akpa na-agba ọsọ dị ka a iche iche host OS usoro nke nwere ya set nke ebe nchekwa (ya mebere adreesị ohere). Ebe oghere adreesị mebere nke ọ bụla bụ nke ya, data nke mpaghara ebe nchekwa dị iche iche enweghị ike ịgbanwe.
Os ala maka Docker bụ Linux (A nwekwara ike iji Docker na Windows na MacOS), ọ na-eji uru ya bụ isi, nke na-enye ya ohere ịhazi nkewa kernel. Igwe Docker na-agba ọsọ na Windows ga-eme n'ime igwe mebere na-agba Linux OS, n'ihi na arịa na-ekekọrịta OS nke sistemụ nnabata na isi OS maka ha bụ Linux.

Akpa - kedu ka o si arụ ọrụ?

Igbe bụ abstraction ọkwa-ngwa na-ejikọta koodu na ndabere. A na-emepụta arịa mgbe niile site na onyonyo, na-agbakwunye akwa oyi akwa a na-ede ede ma na-amalite usoro dị iche iche. N'ihi na akpa nwere oyi akwa ederede nke ya ma na-echekwa mgbanwe niile na oyi akwa ahụ, ọtụtụ akpa nwere ike ịkekọrịta ohere ịnweta otu ihe oyiyi nna ukwu.

Enwere ike ịhazi akpa ọ bụla site na faịlụ na ọrụ docker-compose gụnyere na isi ihe ngwọta - docker-compose.yml. N'ebe ahụ ị nwere ike ịtọ parampat dị iche iche dị ka aha akpa, ọdụ ụgbọ mmiri, ihe nchọpụta, oke akụrụngwa, ndabere n'etiti akpa ndị ọzọ. Ọ bụrụ na ị kọwaghị aha akpa na ntọala, Docker ga-emepụta akpa ọhụrụ oge ọ bụla, na-enye ya aha na-akpaghị aka.

Mgbe ewepụtara akpa site na onyonyo, Docker na-ebuli sistemụ faịlụ na-agụ n'elu ọkwa ọ bụla dị n'okpuru. Nke a bụ ebe usoro niile anyị chọrọ ka akpa Docker anyị na-agba ga-agba ọsọ.

Mgbe Docker buru ụzọ malite akpa, oyi akwa ịgụ-ede mbụ tọgbọ chakoo. Mgbe mgbanwe mere, a na-etinye ha na oyi akwa a; dịka ọmụmaatụ, ọ bụrụ na ịchọrọ ịgbanwe faịlụ, a ga-e copyomi faịlụ ahụ site na oyi akwa naanị ọgụgụ dị n'okpuru na oyi akwa agụ-ede.
Ụdị faịlụ a na-agụ naanị ka ga-adị, mana ezoro ya ugbu a n'okpuru nnomi. A na-eji mpịakọta echekwa data, n'agbanyeghị usoro ndụ nke akpa ahụ. A na-ebido ụda mgbe emepụtara akpa ahụ.

Kedu ka ihe onyonyo a si metụta akpa ahụ?

Foto - isi mmewere maka akpa ọ bụla. A na-emepụta ihe oyiyi ahụ site na Dockerfile agbakwunyere na ọrụ ahụ ma bụrụ usoro faịlụ faịlụ (layers) n'elu ibe ya ma jikọta ọnụ, na-agụ naanị; Ọnụ ọgụgụ kachasị elu bụ 127.

N'ime obi nke ihe oyiyi ọ bụla bụ ihe oyiyi ntọala, nke akọwapụtara site na iwu FROM - ebe ntinye mgbe ị na-ewu ihe oyiyi Dockerfile. Igwe oyibo ọ bụla bụ naanị ihe na-agụ ma na-anọchi anya ya site na otu iwu na-agbanwe sistemụ faịlụ, nke edere na Dockerfile.
Iji jikọta ọkwa ndị a n'otu onyonyo, Docker na-eji sistemụ faịlụ Advanced Multi Layered Union (AuFS wuru n'elu UnionFS), na-enye ohere ka kpuchie faịlụ na akwụkwọ ndekọ aha dị iche iche sitere na ọkwa faịlụ dị iche iche nke ọma, na-eke usoro faịlụ jikọtara ọnụ.

N'ígwé nwere metadata nke na-enye gị ohere ịchekwa ozi metụtara oyi akwa ọ bụla n'oge ọ na-agba ọsọ yana oge wuo. oyi akwa ọ bụla nwere njikọ na oyi akwa na-esote; ọ bụrụ na oyi akwa enweghị njikọ, mgbe ahụ ọ bụ oyi akwa kachasị elu na foto a.

Dockerfile nwere ike ịnwe iwu dịka:

  • SITE - ebe ntinye mgbe ị na-emepụta ihe oyiyi;
  • Onye na-elekọta - aha onye nwe ihe oyiyi;
  • RUN - iwu ogbugbu n'oge mgbakọ oyiyi;
  • ADD - iṅomi faịlụ nnabata na onyonyo ọhụrụ; ọ bụrụ na ị kọwapụta URL nke faịlụ ahụ, Docker ga-ebudata ya na ndekọ aha akọwapụtara;
  • ENV - mgbanwe gburugburu ebe obibi;
  • CMD - na-amalite imepụta akpa ọhụrụ dabere na onyonyo a;
  • ENTRYPOINT - a na-eme iwu mgbe akpa ahụ malitere.
  • WORKDIR bụ ndekọ na-arụ ọrụ maka imezu iwu CMD.
  • USER - na-edobe UID maka akpa emepụtara dabere na onyonyo a.
  • VOLUME - na-ebunye ndekọ aha nnabata n'ime akpa.
  • EXPOSE bụ ọdụ ụgbọ mmiri a na-ege na akpa.

Kedu ka UnionFS si arụ ọrụ?

UnionFS - Utility stack file system (FS) maka Linux na FreeBSD. Nke a FS na-arụ ọrụ nnomi-na-ede usoro (Copy-On-Dee, COW). Ngalaba na-arụ ọrụ nke UnionFS bụ oyi akwa; ekwesịrị ịtụle oyi akwa ọ bụla dị ka sistemụ faịlụ zuru oke nke nwere usoro ndekọ aha sitere na mgbọrọgwụ n'onwe ya. UnionFS na-emepụta otu njikọ maka sistemụ faịlụ ndị ọzọ ma na-enye ohere ka ejikọta faịlụ na akwụkwọ ndekọ aha sitere na sistemụ faịlụ dị iche iche (a na-akpọ ndụdụ) n'ime otu faịlụ faịlụ na-ejikọta ọnụ, n'ụzọ doro anya nye onye ọrụ.

Ọdịnaya nke akwụkwọ ndekọ aha nwere otu ụzọ ga-apụta ọnụ n'otu akwụkwọ ndekọ aha jikọtara ọnụ (n'otu oghere aha) nke sistemụ faịlụ ga-apụta.

UnionFS na-ejikọta ọkwa dabere na ụkpụrụ ndị a:

  • otu n'ime akwa akwa na-aghọ ọkwa elu nke elu, nke abụọ na nke na-esote na-aghọ ọkwa dị ala;
  • ihe oyi akwa dị maka onye ọrụ "site n'elu ruo na ala", ya bụ. ọ bụrụ na ihe a rịọrọ dị na oyi akwa "n'elu", a na-eweghachi ya, n'agbanyeghị ọnụnọ nke otu aha na oyi akwa "ala"; ma ọ bụghị ya, a na-eweghachite ihe nke oyi akwa "ala"; ọ bụrụ na ihe a rịọrọ adịghị ebe ahụ ma ọ bụ ebe ahụ, a na-eweghachi njehie "Ọ dịghị faịlụ ma ọ bụ akwụkwọ ndekọ aha";
  • oyi akwa na-arụ ọrụ bụ "n'elu", ya bụ, omume onye ọrụ niile iji gbanwee data na-egosipụta naanị n'elu ọkwa dị elu, na-enweghị emetụta ọdịnaya nke ọkwa ọkwa dị ala.

Docker bụ teknụzụ a na-ahụkarị maka iji arịa na-eme ngwa. Ọ bụrụla ọkọlọtọ n'ọhịa, na-ewulite na otu na oghere aha nke Linux kernel nyere.

Docker na-enye anyị ohere ibuga ngwa ngwa ngwa ma jiri sistemụ faịlụ mee ihe kachasị mma site na kewaa kernel OS n'etiti arịa niile, na-agba ọsọ dị ka usoro OS dị iche.

isi: www.habr.com

Tinye a comment