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.
→
→
→
→
→
→
Ndokumbira utarise kuti chinyorwa ichi chakagadzirwa uchishandisa iyo Docker injini vhezheni 18.09.1 uye API vhezheni
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
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 kuvakusunga ,vhorumu kanatmpfs . Tiri kutaura pamusoro pemavhoriyamu pano, ndiko kuti, isu tinofarira kukoshavolume
.source
- mount source. Pamavhoriyamu ane mazita, iri ndiro zita revhoriyamu. Pamavhoriyamu asina kutaurwa, kiyi iyi haina kutaurwa. Inogona kupfupikiswa kutisrc
.destination
- nzira iyo iyo faira kana folda inokwidziridzwa mumudziyo. Kiyi iyi inogona kupfupikiswa kutidst
kanatarget
.readonly
- inokwirisa vhoriyamu inotarwakungoverenga 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.
Vanodiwa vaverengi! Ndezvipi zvinhu zveDocker zvaungakurudzira kuti vanotanga kudzidza?
Source: www.habr.com