Docker mmụta, akụkụ 6: Iji data na-arụ ọrụ

N'akụkụ nke taa nke ntụgharị usoro ihe gbasara Docker, anyị ga-ekwu maka iji data rụọ ọrụ. Karịsịa, gbasara mpịakọta Docker. N'ime ihe ndị a, anyị na-atụnyere usoro mmemme Docker na ihe atụ dị iche iche oriri. Anyị agaghị esi n'ọdịnala a pụọ ​​ebe a. Ka data dị na Docker bụrụ ngwa nri. Enwere ọtụtụ ngwa nri n'ụwa, Docker nwekwara ọtụtụ ụzọ isi rụọ ọrụ na data.

Nkebi nke 1: Ihe ndabere
Nkebi 2: okwu na echiche
Akụkụ 3: Dockerfiles
Nkebi nke 4: Mbelata nha onyonyo na ime ka mgbakọ ha dị ngwa
Nkebi 5: iwu
Nkebi nke 6: na-arụ ọrụ na data

Docker mmụta, akụkụ 6: Iji data na-arụ ọrụ

Biko mara na ejiri ụdị Docker engine 18.09.1 ​​na API akwadoro ihe a 1.39.

Enwere ike ịchekwa data dị na Docker ma ọ bụ nwa oge ma ọ bụ na-adịgide adịgide. Ka anyị malite na data nwa oge.

Nchekwa data nwa oge

Enwere ụzọ abụọ iji jikwaa data nwa oge na arịa Docker.

Na ndabara, faịlụ ndị ngwa mepụtara na-agba n'ime akpa na-echekwa n'ime oyi akwa nwere ike ide ede. Ka usoro a wee rụọ ọrụ, ọ nweghị ihe pụrụ iche kwesịrị ịhazi. Ọ na-apụta dị ọnụ ala na obi ụtọ. Ngwa ahụ kwesịrị ịchekwa data ma gaa n'ihu na-eme ihe nke ya. Agbanyeghị, mgbe akpa ahụ kwụsịrị ịdị adị, data echekwara n'ụzọ dị mfe ga-apụkwa.

Nchekwa faịlụ nwa oge na Docker bụ ihe ngwọta ọzọ dabara adaba maka ikpe ebe ịchọrọ ịrụ ọrụ dị elu karịa nke a na-enweta site na iji usoro nchekwa data nwa oge. Ọ bụrụ na ịchọghị ka echekwara data gị ogologo oge karịa akpa dị, ị nwere ike jikọọ na akpa tmpfs - ụlọ ahịa ozi nwa oge nke na-eji RAM onye ọbịa. Nke a ga-eme ngwa ngwa na-arụ ọrụ ide data na ịgụ akwụkwọ.

Ọ na-emekarị na ọ dị mkpa ka echekwara data ahụ ọbụna mgbe akpa ahụ kwụsịrị ịdị adị. Iji mee nke a, anyị chọrọ usoro nchekwa data na-adịgide adịgide.

Nchekwa data na-adịgide adịgide

Enwere ụzọ abụọ iji mee ka data ahụ dị ogologo karịa ndụ akpa. Otu ụzọ bụ iji teknụzụ bind mount. Site na usoro a, ị nwere ike ịkwanye, dịka ọmụmaatụ, nchekwa ndụ n'ezie na akpa ahụ. Usoro na-abụghị Docker ga-enwekwa ike iji data echekwara na folda dị otú ahụ rụọ ọrụ. Otú ahụ ka ọ dị lee anya tmpfs na-ebuli ma kechie teknụzụ ugwu.

Docker mmụta, akụkụ 6: Iji data na-arụ ọrụ
Ịkwanye tmpfs ma kechie ugwu

Ọdịmma dị n'iji teknụzụ bid mount bụ na iji ya na-eme ka ndabere data dị mgbagwoju anya, mbugharị data, ikesa data n'etiti ọtụtụ akpa. Ọ ka mma iji mpịakọta Docker maka nchekwa data na-adịgide adịgide.

Mpempe akwụkwọ Docker

Otu olu bụ sistemụ faịlụ nke dị na igwe nnabata na mpụga arịa. Docker na-emepụta ma na-ejikwa mpịakọta. Nke a bụ njirimara bụ isi nke mpịakọta Docker:

  • Ha bụ ụzọ isi echekwa ozi na-adịgide adịgide.
  • Ha nọọrọ onwe ha ma kewapụ ha na arịa.
  • Enwere ike ịkekọrịta ha n'etiti akpa dị iche iche.
  • Ha na-enye gị ohere ịhazi ịgụ na ide data nke ọma.
  • Enwere ike itinye ụda na akụrụngwa nke onye na-eweta igwe ojii dịpụrụ adịpụ.
  • Enwere ike izochi ha.
  • Enwere ike ịnye ha aha.
  • Akpa ahụ nwere ike ịhazi maka ibubata ụda olu na data.
  • Ha dị mma maka nnwale.

Dị ka ị pụrụ ịhụ, mpịakọta Docker nwere ihe dị ịtụnanya. Ka anyị kwuo maka otu esi emepụta ha.

Ịmepụta mpịakọta

Enwere ike ịmepụta mpịakọta site na iji Docker ma ọ bụ arịrịọ API.

Nke a bụ ntuziaka dị na Dockerfile nke na-enye gị ohere ịmepụta olu mgbe ị na-amalite akpa.

VOLUME /my_volume

Mgbe ị na-eji ntuziaka yiri nke ahụ, Docker, mgbe emechara akpa ahụ, ga-emepụta olu nwere data dị adị na ọnọdụ akọwapụtara. Rịba ama na ọ bụrụ na iji Dockerfile mepụta olu, nke a anaghị ewepụ gị mkpa ịkọwapụta ebe mgbago olu.

Ị nwekwara ike ịmepụta mpịakọta na Dockerfile site na iji usoro JSON.

Na mgbakwunye, enwere ike ịmepụta mpịakọta site na iji ngwaọrụ ahịrị iwu mgbe akpa na-agba ọsọ.

Na-arụ ọrụ na mpịakọta sitere na ahịrị iwu

▍ Ihe e kere eke

Ị nwere ike ịmepụta olu kwụ ọtọ site na iji iwu a:

docker volume create —-name my_volume

▍ Chọpụta ozi gbasara mpịakọta

Ka ilele ndepụta mpịakọta Docker, jiri iwu a:

docker volume ls

Ị nwere ike nyochaa otu olu dị ka nke a:

docker volume inspect my_volume

▍Ihichapụ otu olu

Ị nwere ike ihichapụ olu dị ka nke a:

docker volume rm my_volume

Iji wepu mpịakọta niile nke arịa anaghị eji, ị nwere ike ịmalite iwu a:

docker volume prune

Tupu ihichapụ mpịakọta, Docker ga-ajụ gị ka ị kwado ọrụ a.

Ọ bụrụ na ejikọtara olu na akpa, enweghị ike ihichapụ olu ahụ ruo mgbe ehichapụrụ akpa ahụ kwekọrọ. N'otu oge ahụ, ọbụlagodi na ewepụrụ akpa ahụ, Docker anaghị aghọta nke a mgbe niile. Ọ bụrụ na nke a emee, ịnwere ike iji iwu a:

docker system prune

Emebere ya iji hichaa akụrụngwa Docker. Mgbe ịmechara iwu a, ị ga-enwe ike ihichapụ mpịakọta ndị ọkwa ha ezighi ezi na mbụ.

Ọkọlọtọ --mount na --olu

Iji na-arụ ọrụ na mpịakọta, mgbe ị na-akpọ iwu docker, ị ga-achọkarị iji ọkọlọtọ. Dịka ọmụmaatụ, iji mepụta olu n'oge ịmepụta akpa, ị nwere ike iji ihe nrụpụta a:

docker container run --mount source=my_volume, target=/container/path/for/volume my_image

N'oge ochie (ruo n'afọ 2017), ọkọlọtọ na-ewu ewu --volume. Na mbụ, ọkọlọtọ a (enwere ike iji ya mee ihe n'ụdị abbreviated, mgbe ahụ ọ dị ka -v) e ji arịa ndị kwụ ọtọ, na ọkọlọtọ --mount - na gburugburu Docker Swarm. Agbanyeghị, dịka nke Docker 17.06, ọkọlọtọ --mount enwere ike iji ya na ọnọdụ ọ bụla.

Ekwesiri iburu n'uche na mgbe eji ọkọlọtọ --mount Ọnụ ọgụgụ nke data agbakwunyere nke a ga-akọwapụta na iwu na-abawanye, mana, n'ihi ọtụtụ ihe, ọ ka mma iji ọkọlọtọ a, ọ bụghịkwa. --volume. Ọkọlọtọ --mount bụ naanị usoro na-enye gị ohere iji ọrụ rụọ ọrụ ma ọ bụ kọwaa nhọrọ ọkwọ ụgbọ ala. Ọzọkwa, ọkọlọtọ a dị mfe iji rụọ ọrụ.

N'ihe atụ dị ugbu a nke iwu nchịkwa data Docker, ị nwere ike ịhụ ọtụtụ ihe atụ nke iji ọkọlọtọ -v. Mgbe ị na-agbalị imegharị iwu ndị a maka onwe gị, buru n'uche na ọkọlọtọ --mount и --volume jiri usoro parameter dị iche iche. Ya bụ, ị nweghị ike dochie ya -v on --mount ma nweta otu ndị na-arụ ọrụ.

Isi ihe dị iche n'etiti --mount и --volume bụ nke ahụ mgbe ị na-eji ọkọlọtọ --volume niile parameters na-anakọta ọnụ n'otu ubi, na mgbe eji --mount A na-ekewa parampat.

Mgbe ị na -arụ ọrụ --mount A na-anọchi anya paramita dị ka ụzọ ụzọ isi uru, ya bụ, ọ dị ka key=value. A na-ekewa ụzọ abụọ ndị a site na rikoma. Nke a bụ nhọrọ ndị a na-ejikarị --mount:

  • type - ugwu ụdị. Uru maka igodo kwekọrọ nwere ike ịbụ kee agbụ, olu ma ọ bụ tmb. Anyị na-ekwu maka mpịakọta ebe a, ya bụ, anyị nwere mmasị na uru volume.
  • source - ugwu isi iyi. Maka mpịakọta aha, nke a bụ aha olu. Maka mpịakọta akpọghị aha, akọwapụtaghị igodo a. Enwere ike ịbelata ya src.
  • destination - ụzọ ebe a na-etinye faịlụ ma ọ bụ nchekwa n'ime akpa ahụ. Enwere ike imechi igodo a ka ọ bụrụ dst ma ọ bụ target.
  • readonly - na-ebuli olu e bu n'obi naanị maka ịgụ ihe. Iji igodo a bụ nhọrọ, ọ nweghị uru e kenyere ya.

Nke a bụ ọmụmaatụ ojiji --mount nwere ọtụtụ nhọrọ:

docker run --mount type=volume,source=volume_name,destination=/path/in/container,readonly my_image

Nsonaazụ

Nke a bụ ụfọdụ iwu bara uru ị nwere ike iji mgbe ị na-arụ ọrụ na mpịakọta Docker:

  • docker volume create
  • docker volume ls
  • docker volume inspect
  • docker volume rm
  • docker volume prune

Nke a bụ ndepụta nhọrọ ndị a na-ejikarị eme ihe maka --mount, ọdabara na iwu nke ụdị docker run --mount my_options my_image:

  • type=volume
  • source=volume_name
  • destination=/path/in/container
  • readonly

Ugbu a anyị emechaala usoro Docker a, ọ bụ oge ikwu okwu ole na ole gbasara ebe ndị mmụta Docker nwere ike ịga na-esote. ebe a ezigbo akụkọ banyere Docker. ebe a akwụkwọ gbasara Docker (mgbe ị na-azụrụ akwụkwọ a, gbalịa nweta mbipụta ya kacha ọhụrụ). ebe a akwụkwọ ọzọ maka ndị na-eche na omume bụ ụzọ kacha mma isi mụta nkà na ụzụ.

Ezigbo ndị na-agụ akwụkwọ! Kedu ihe Docker ị ga-akwado maka ndị mbido ka ha mụta?

Docker mmụta, akụkụ 6: Iji data na-arụ ọrụ

isi: www.habr.com

Tinye a comment