Kujifunza Docker, sehemu ya 6: kufanya kazi na data

Katika sehemu ya leo ya tafsiri ya safu ya vifaa kuhusu Docker, tutazungumza juu ya kufanya kazi na data. Hasa, kuhusu kiasi cha Docker. Katika nyenzo hizi, tulilinganisha kila mara injini za programu za Docker na mlinganisho mbalimbali wa chakula. Tusigeuke kutoka kwenye mila hii hapa pia. Wacha data kwenye Docker iwe viungo. Kuna aina nyingi za viungo duniani, na katika Docker kuna njia nyingi za kufanya kazi na data.

Sehemu ya 1: Misingi
Sehemu ya 2: Masharti na Dhana
Sehemu ya 3: Dockerfiles
Sehemu ya 4: Kupunguza ukubwa wa picha na kuharakisha uundaji wao
Sehemu ya 5: amri
Sehemu ya 6: Kufanya kazi na data

Kujifunza Docker, sehemu ya 6: kufanya kazi na data

Tafadhali kumbuka kuwa nyenzo hii ilitayarishwa kwa kutumia toleo la injini ya Docker 18.09.1 ​​na toleo la API 1.39.

Data katika Docker inaweza kuhifadhiwa kwa muda au kwa kudumu. Wacha tuanze na data ya wakati.

Uhifadhi wa data wa muda

Katika vyombo vya Docker, unaweza kupanga kazi na data ya muda kwa njia mbili.

Kwa chaguo-msingi, faili zilizoundwa na programu inayoendesha kwenye chombo huhifadhiwa kwenye safu inayoweza kuandikwa ya chombo. Ili utaratibu huu ufanye kazi, hakuna kitu maalum kinachohitaji kusanidiwa. Inageuka kuwa ya bei nafuu na yenye furaha. Programu inahitaji tu kuhifadhi data na kuendelea kufanya mambo yake. Hata hivyo, baada ya chombo kuacha kuwepo, data iliyohifadhiwa kwa njia hii rahisi pia itatoweka.

Kuna suluhisho lingine la kuhifadhi faili za muda kwenye Docker, zinazofaa kwa kesi ambapo unahitaji kiwango cha juu cha utendaji ikilinganishwa na kile kinachoweza kufikiwa na utaratibu wa kawaida wa kuhifadhi muda. Iwapo huhitaji data yako kuhifadhiwa kwa muda mrefu zaidi ya chombo kilichopo, unaweza kuunganisha tmpfs kwenye kontena - hifadhi ya maelezo ya muda inayotumia RAM ya seva pangishi. Hii itaongeza kasi ya kuandika na kusoma data.

Mara nyingi hutokea kwamba data inahitaji kuhifadhiwa hata baada ya chombo kuacha kuwepo. Kwa madhumuni haya, tutahitaji mbinu za kuhifadhi data kila mara.

Uhifadhi wa data wa kudumu

Kuna njia mbili za kufanya maisha ya data kuwa marefu kuliko maisha ya kontena. Njia moja ni kutumia bind mount teknolojia. Kwa mbinu hii, unaweza kuweka, kwa mfano, folda ya maisha halisi kwenye chombo. Taratibu zilizo nje ya Docker pia zitaweza kufanya kazi na data iliyohifadhiwa kwenye folda kama hiyo. Hivi ndivyo jinsi angalia tmpfs kuweka na kumfunga teknolojia ya mlima.

Kujifunza Docker, sehemu ya 6: kufanya kazi na data
Panda tmpfs na funga mlima

Ubaya wa kutumia teknolojia ya bind mount ni kwamba utumiaji wake hutatiza kuhifadhi nakala ya data, uhamishaji wa data, na kushiriki data kati ya vyombo vingi. Ni bora zaidi kutumia viwango vya Docker kwa uhifadhi wa data unaoendelea.

Kiasi cha Docker

Kiasi ni mfumo wa faili ambao hukaa kwenye mashine mwenyeji nje ya makontena. Docker huunda na kudhibiti kiasi. Hapa kuna mali kuu ya kiasi cha Docker:

  • Wao ni njia ya kuhifadhi habari milele.
  • Wao ni huru na kutengwa na vyombo.
  • Wanaweza kugawanywa kati ya vyombo tofauti.
  • Wanakuruhusu kupanga usomaji mzuri na uandishi wa data.
  • Kiasi kinaweza kupangishwa kwenye rasilimali za mtoaji wa wingu wa mbali.
  • Wanaweza kusimbwa kwa njia fiche.
  • Wanaweza kupewa majina.
  • Chombo kinaweza kupanga ili sauti ijazwe na data mapema.
  • Wao ni rahisi kwa kupima.

Kama unaweza kuona, kiasi cha Docker kina mali nzuri. Wacha tuzungumze juu ya jinsi ya kuziunda.

Kuunda Kiasi

Kiasi kinaweza kuundwa kwa kutumia Docker au kutumia maombi ya API.

Hapa kuna maagizo ya Dockerfile ambayo hukuruhusu kuunda kiasi wakati kontena inapoanza.

VOLUME /my_volume

Wakati wa kutumia maagizo kama haya, Docker, baada ya kuunda kontena, itaunda kiasi kilicho na data ambayo tayari iko katika eneo maalum. Tafadhali kumbuka kuwa ikiwa utaunda kiasi kwa kutumia Dockerfile, hii haikuondolei hitaji la kutaja sehemu ya kupachika sauti.

Unaweza pia kuunda kiasi katika Dockerfile kwa kutumia umbizo la JSON.

Kwa kuongeza, kiasi kinaweza kuundwa kwa kutumia mstari wa amri wakati chombo kinaendesha.

Kufanya kazi na kiasi kutoka kwa mstari wa amri

▍Kuunda sauti

Unaweza kuunda kiasi cha kusimama pekee kwa amri ifuatayo:

docker volume create —-name my_volume

▍Pata maelezo kuhusu juzuu

Kuangalia orodha ya kiasi cha Docker, tumia amri ifuatayo:

docker volume ls

Unaweza kuchunguza kiasi maalum kama hiki:

docker volume inspect my_volume

▍Kufuta sauti

Unaweza kufuta kiasi kama hiki:

docker volume rm my_volume

Ili kufuta idadi yote ambayo haitumiwi na vyombo, unaweza kutumia amri ifuatayo:

docker volume prune

Kabla ya kufuta kiasi, Docker itakuuliza uthibitishe operesheni hii.

Ikiwa kiasi kinahusishwa na chombo, sauti haiwezi kufutwa mpaka chombo kinachofanana kifutwe. Wakati huo huo, hata ikiwa chombo kimefutwa, Docker haelewi hili kila wakati. Ikiwa hii itatokea, unaweza kutumia amri ifuatayo:

docker system prune

Imeundwa kusafisha rasilimali za Docker. Baada ya kutekeleza amri hii, unapaswa kuwa na uwezo wa kufuta kiasi ambacho hali yake iliamuliwa vibaya hapo awali.

--weka na --bendera za sauti

Kufanya kazi na kiasi wewe, wakati wa kupiga amri docker, mara nyingi utalazimika kutumia bendera. Kwa mfano, ili kuunda kiasi wakati wa kuunda chombo, unaweza kutumia ujenzi ufuatao:

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

Katika nyakati za zamani (hadi 2017), bendera ilikuwa maarufu --volume. Hapo awali, bendera hii (inaweza pia kutumika kwa fomu iliyofupishwa, basi inaonekana kama -v) ilitumika kwa vyombo vya kusimama pekee, na bendera --mount - katika mazingira ya Docker Swarm. Walakini, kama ya Docker 17.06, bendera --mount inaweza kutumika katika hali yoyote.

Ikumbukwe kwamba wakati wa kutumia bendera --mount kiasi cha data ya ziada ambayo inapaswa kutajwa katika amri huongezeka, lakini, kwa sababu kadhaa, ni bora kutumia bendera hii badala ya --volume. Bendera --mount - Huu ndio utaratibu pekee unaokuwezesha kufanya kazi na huduma au kutaja vigezo vya dereva wa kiasi. Kwa kuongeza, bendera hii ni rahisi kufanya kazi nayo.

Katika mifano iliyopo ya amri zinazolenga kufanya kazi na data katika Docker, unaweza kupata mifano mingi ya kutumia bendera -v. Unapojaribu kurekebisha amri hizi kwako mwenyewe, kumbuka kuwa bendera --mount и --volume tumia fomati tofauti za parameta. Hiyo ni, huwezi kuchukua nafasi tu -v juu ya --mount na kupata timu ya kufanya kazi.

Tofauti kuu kati ya --mount и --volume ni kwamba wakati wa kutumia bendera --volume vigezo vyote vinakusanywa pamoja katika uwanja mmoja, na wakati unatumiwa --mount vigezo vinatenganishwa.

Wakati wa kufanya kazi na --mount vigezo vinawakilishwa kama jozi za thamani-msingi, yaani, inaonekana kama key=value. Jozi hizi zimetenganishwa kwa koma. Hapa kuna chaguzi zinazotumiwa kwa kawaida --mount:

  • type - aina ya ufungaji. Thamani ya ufunguo unaolingana inaweza kuwa kumfunga, kiasi au tmpfs. Tunazungumza juu ya juzuu hapa, ambayo ni, tunavutiwa na maana volume.
  • source - chanzo cha mlima. Kwa juzuu zilizotajwa, hili ndilo jina la kiasi. Kwa juzuu zisizo na majina ufunguo huu haujabainishwa. Inaweza kufupishwa kwa src.
  • destination - njia ambayo faili au folda imewekwa kwenye chombo. Ufunguo huu unaweza kufupishwa kuwa dst au target.
  • readonly - huweka sauti iliyokusudiwa kwa kusoma tu. Ufunguo huu ni wa hiari na hauna thamani iliyokabidhiwa.

Hapa kuna mfano wa matumizi --mount na vigezo vingi:

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

Matokeo ya

Hapa kuna maagizo muhimu ambayo unaweza kutumia wakati wa kufanya kazi na viwango vya Docker:

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

Hapa kuna orodha ya vigezo vinavyotumika kwa kawaida --mount, inatumika katika amri kama docker run --mount my_options my_image:

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

Sasa kwa kuwa tumekamilisha mfululizo huu wa Docker, ni wakati wa kusema maneno machache kuhusu ni wapi wanafunzi wa Docker wanaweza kufuata. Hapa nakala nzuri kuhusu Docker. Hapa kitabu kuhusu Docker (unaponunua kitabu hiki, jaribu kupata toleo jipya zaidi). Hapa Kitabu kingine ambacho kinafaa kwa wale wanaoamini kuwa mazoezi ndiyo njia bora ya kujifunza teknolojia.

Ndugu wasomaji! Ni nyenzo gani kuhusu Docker ungependekeza kwa wanaoanza kujifunza?

Kujifunza Docker, sehemu ya 6: kufanya kazi na data

Chanzo: mapenzi.com

Kuongeza maoni