Kudzidza Docker, Chikamu 6: Kushanda neData

Muchikamu chanhasi cheshanduro yenhevedzano yezvinhu nezveDocker, isu tichataura nezve kushanda nedata. Kunyanya, nezveDocker mavhoriyamu. Mune izvi zvigadzirwa, isu taigara tichienzanisa Docker programming masisitimu ane akasiyana anodyika analogies. Hatisi kuzotsauka kubva patsika iyi pano. Rega data muDocker rive zvinonhuwira. Kune zvakawanda zvinonhuhwirira munyika, uye Docker ine nzira dzakawanda dzekushanda nedata.

Chikamu 1: The Basics
Chikamu 2: mazwi uye pfungwa
Chikamu 3: Dockerfiles
Chikamu 4: Kuderedza saizi yemifananidzo uye nekumhanyisa kuungana kwavo
Chikamu 5: mirairo
Chikamu 6: kushanda nedata

Kudzidza Docker, Chikamu 6: Kushanda neData

Ndokumbira utarise kuti chinyorwa ichi chakagadzirwa uchishandisa iyo Docker injini vhezheni 18.09.1 ​​​​uye API vhezheni 1.39.

Dhata muDocker inogona kuchengetwa kwenguva pfupi kana zvachose. Ngatitange ne data yenguva pfupi.

Kuchengetedza data kwenguva pfupi

Pane nzira mbiri dzekugadzirisa data yenguva pfupi muDocker midziyo.

Nekumisikidza, mafaera akagadzirwa nechishandiso chinomhanya mumudziyo anochengetwa mumudziyo unonyorwa. Kuti iyi nzira ishande, hapana chakakosha chinoda kugadzirwa. Zvinobuda zvakachipa uye zvinofadza. Iyo application inongoda kuchengetedza iyo data uye kuenderera mberi nekuita zvayo. Nekudaro, mushure mekunge mudziyo wamira kuvapo, iyo data yakachengetwa nenzira iri nyore ichanyangarika.

Kuchengetedzwa kwemafaira kwenguva pfupi muDocker imwe mhinduro inokodzera zviitiko apo iwe unoda mwero wepamusoro wekuita pane izvo zvinogoneka uchishandisa yakajairwa yenguva diki yekuchengetedza data. Kana iwe usingade kuti data rako richengetwe kwenguva yakareba kupfuura mudziyo uripo, unogona kubatana nemudziyo tmpfs - chitoro cheruzivo chenguva pfupi chinoshandisa RAM yemuenzi. Izvi zvinomhanyisa kuita kwekunyora kwedata uye mashandiro ekuverenga.

Zvinowanzoitika kuti iyo data inoda kuchengetwa kunyangwe mudziyo warega kuvapo. Kuti tiite izvi, tinoda kuramba tichichengetedza data.

Kuramba kuchengetwa kwedata

Pane nzira mbiri dzekuita kuti data hupenyu hurebe kupfuura iyo mudziyo hupenyu. Imwe nzira ndeye kushandisa bind mount tekinoroji. Neiyi nzira, iwe unogona kukwira, semuenzaniso, chaiyo-yehupenyu folda kune mudziyo. Maitiro kunze kweDocker achakwanisawo kushanda nedata rakachengetwa muforodha yakadaro. Ndizvo zvakaita tarisa tmpfs kukwira uye sunga gomo tekinoroji.

Kudzidza Docker, Chikamu 6: Kushanda neData
Kukwira tmpfs uye sunga gomo

Izvo zvakashata zvekushandisa bind mount tekinoroji ndezvekuti kushandiswa kwayo kunokanganisa kuchengetedza data, kutamisa data, kugovana data pakati pemidziyo yakati wandei. Zviri nani kushandisa mavhoriyamu eDocker kuti arambe achichengeta data.

Mavhoriyamu Docker

Vhoriyamu ifaira system inowanikwa pamushini wekutambira kunze kwemidziyo. Mavhoriyamu anogadzirwa uye anotungamirwa naDocker. Heano makuru zvimiro zveDocker mavhoriyamu:

  • Ivo inzira yekuchengetedza zvachose ruzivo.
  • Vanozvimiririra uye vakaparadzaniswa nemidziyo.
  • Vanogona kugoverwa pakati pemidziyo yakasiyana.
  • Vanokutendera kuti uronge kuverenga kwakanaka uye kunyora kwe data.
  • Mavhoriyamu anogona kuiswa pane zviwanikwa zvemupi wegore ari kure.
  • Vanogona kuva encrypted.
  • Vanogona kupihwa mazita.
  • Iyo mudziyo inogona kuronga pre-population yevhoriyamu ine data.
  • Iwo akakodzera kuongororwa.

Sezvauri kuona, mavhoriyamu eDocker ane zvinoshamisa zvivakwa. Ngatitaurei kuti tingazvigadzira sei.

Kugadzira Mavhoriyamu

Mavhoriyamu anogona kugadzirwa uchishandisa Docker kana API zvikumbiro.

Heino rairo muDockerfile iyo inokutendera iwe kuti ugadzire vhoriyamu paunotanga mudziyo.

VOLUME /my_volume

Paunenge uchishandisa rairo yakafanana, Docker, mushure mekugadzira mudziyo, ichagadzira vhoriyamu ine data yagara iripo munzvimbo yakatarwa. Ziva kuti kana iwe ukagadzira vhoriyamu uchishandisa Dockerfile, izvi hazvikurerudze iwe pakuda kwekutsanangura iyo vhoriyamu nzvimbo yekukwira.

Iwe unogona zvakare kugadzira mavhoriyamu muDockerfile uchishandisa iyo JSON fomati.

Mukuwedzera, mavhoriyamu anogona kugadzirwa uchishandisa command line maturusi apo mudziyo uri kushanda.

Kushanda nemavhoriyamu kubva kumutsara wekuraira

▍Kugadzira inzwi

Iwe unogona kugadzira vhoriyamu yakamira nemurairo unotevera:

docker volume create —-name my_volume

▍Tsvaga ruzivo nezvemavhoriyamu

Kuti uone rondedzero yeDocker mavhoriyamu, shandisa murairo unotevera:

docker volume ls

Unogona kuongorora vhoriyamu chaiyo seizvi:

docker volume inspect my_volume

▍Kudzima vhoriyamu

Unogona kudzima vhoriyamu seizvi:

docker volume rm my_volume

Kuti ubvise mavhoriyamu ese asina kushandiswa nemidziyo, unogona kushandisa unotevera kuraira:

docker volume prune

Usati wadzima mavhoriyamu, Docker inokukumbira kuti usimbise oparesheni iyi.

Kana vhoriyamu yakabatana nemudziyo, vhoriyamu iyoyo haigone kudzimwa kusvika mudziyo unoenderana wadzimwa. Panguva imwecheteyo, kunyangwe mudziyo ukabviswa, Docker haigaronzwisisa izvi. Kana izvi zvikaitika, unogona kushandisa murairo unotevera:

docker system prune

Yakagadzirirwa kuchenesa Docker zviwanikwa. Mushure mekuita uyu murairo, iwe unofanirwa kukwanisa kudzima mavhoriyamu ane chimiro chaive chisina kururama.

Iyo --gomo uye --vhoriyamu mireza

Kushanda nemavhoriyamu, paunodaidza murairo docker, kazhinji uchada kushandisa mireza. Semuenzaniso, kugadzira vhoriyamu panguva yekugadzira mudziyo, unogona kushandisa ichi chivakwa:

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

Munguva dzekare (kusvika 2017), mureza wakanga wakakurumbira --volume. Pakutanga, iyi mureza (inogonawo kushandiswa mune yakapfupikiswa fomu, zvino inoita senge -v) yaishandiswa midziyo yakazvimirira yoga, uye mureza --mount - munzvimbo yeDocker Swarm. Nekudaro, kubva kuDocker 17.06, mureza --mount inogona kushandiswa mune chero mamiriro ezvinhu.

Zvinofanira kucherechedzwa kuti kana kushandisa mureza --mount huwandu hwekuwedzera data iyo inofanirwa kutsanangurwa mukuraira inowedzera, asi, nezvikonzero zvakati wandei, zviri nani kushandisa iyi chaiyo mureza, uye kwete. --volume. Flag --mount ndiyo yega michina inobvumidza iwe kushanda nemasevhisi kana kutsanangura vhoriyamu madhiraivha sarudzo. Zvakare, iyi mureza iri nyore kushanda nayo.

Mune iyo iripo mienzaniso yeDocker data manipulation mirairo, unogona kuona yakawanda mienzaniso yekushandiswa kwemureza -v. Paunenge uchiedza kugadzirisa iyi mirairo iwe pachako, yeuka kuti mireza --mount и --volume shandisa akasiyana parameter mafomati. Kureva kuti haugone kungotsiva -v pamusoro --mount uye uwane boka rinoshanda.

Musiyano mukuru pakati --mount и --volume ndizvo here kana uchishandisa mureza --volume ese ma parameter anounganidzwa pamwechete mumunda mumwe, uye kana uchishandisa --mount parameters inoparadzaniswa.

Paunenge uchishanda na --mount parameters inomiririrwa sekiyi-value pairs, kureva, zvinoita senge key=value. Peya idzi dzinopatsanurwa nemakoma. Heano maitiro anowanzoshandiswa --mount:

  • type - Mount type. Iko kukosha kwekiyi inoenderana inogona kuva kusunga, vhorumu kana tmpfs. Tiri kutaura pamusoro pemavhoriyamu pano, ndiko kuti, isu tinofarira kukosha volume.
  • source - mount source. Pamavhoriyamu ane mazita, iri ndiro zita revhoriyamu. Pamavhoriyamu asina kutaurwa, kiyi iyi haina kutaurwa. Inogona kupfupikiswa kuti src.
  • destination - nzira iyo iyo faira kana folda inokwidziridzwa mumudziyo. Kiyi iyi inogona kupfupikiswa kuti dst kana target.
  • readonly - inokwirisa vhoriyamu inotarwa kungoverenga chete. Iko kushandiswa kwekiyi iyi ndeyekusarudza, uye hapana kukosha kwakapihwa kwairi.

Heino muenzaniso wekushandiswa --mount nesarudzo dzakawanda:

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

Migumisiro

Heano mimwe mirairo inobatsira yaunogona kushandisa paunenge uchishanda neDocker mavhoriyamu:

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

Heino rondedzero yezvinowanzo shandiswa sarudzo dze --mount, inoshanda mukuraira kwefomu docker run --mount my_options my_image:

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

Zvino zvatapedza iyi Docker nhevedzano, yave nguva yekutaura mazwi mashoma ekuti vadzidzi veDocker vanogona kuenda kupi. pano yakanaka yakanaka chinyorwa nezve Docker. pano bhuku pamusoro peDocker (kana uchitenga bhuku iri, edza kuwana iro razvino edition yaro). pano rimwe bhuku kune avo vanofunga kudzidzira ndiyo nzira yakanakisisa yekudzidza teknolojia.

Vanodiwa vaverengi! Ndezvipi zvinhu zveDocker zvaungakurudzira kuti vanotanga kudzidza?

Kudzidza Docker, Chikamu 6: Kushanda neData

Source: www.habr.com

Voeg