Selles Dockeri materjali seeria osas rÀÀgime andmete haldamisest. EelkĂ”ige rÀÀgime Dockeri volumest. Kogu selle seeria jooksul oleme pidevalt vĂ”rdlenud Dockeri mehhanisme erinevate toidu analoogidega. JĂ€tkame seda traditsiooni ka siin. Andmeid Dockeris vĂ”iks vĂ”rrelda vĂŒrtsidega. Maailmas on palju erinevaid vĂŒrtse, ja Dockeris on palju erinevaid andmehalduse viise.
â
â
â
â
â
â
Pange tÀhele, et see materjal on koostatud Docker mootoriga versioon 18.09.1 ja API versiooniga .
Andmed Dockeris vĂ”ivad olla kas ajutised vĂ”i pĂŒsivad. Alustame ajutistest andmetest.
Ajutine andmete salvestamine
Dockeri konteinerites saab ajutiste andmete haldamiseks kasutada kahte vÔimalust.
Vaikimisi salvestatakse konteineris töötava rakenduse loodud failid konteineri kirjutusvÔimelisse kihti. Selle mehhanismi toimimiseks ei ole vaja midagi spetsiaalselt seadistada. See on odav ja efektiivne. Rakendusele on piisav andmete salvestamine ja oma tegevuste jÀtkamine. Siiski, kui konteiner lÔpetab oma olemise, kaovad ka andmed, mis on sellisel lihtsal viisil salvestatud.
Ajutiste failide salvestamiseks Dockeris on veel ĂŒks lahendus, mis sobib olukordadesse, kus on vajalik kĂ”rgem jĂ”udlus vĂ”rreldes tavapĂ€rase ajutiste andmete salvestamise mehhanismiga. Kui te ei vaja, et teie andmed pĂŒsiksid kauem kui konteiner, saate konteinerile ĂŒhendada tmpfs â mĂ€lu ajutise salvestuse, mis kasutab hosti RAM-i. See vĂ”imaldab kiirendada andmete kirjutamise ja lugemise tehingute toimimist.
Sageli on nii, et andmeid tuleb hoida ka pĂ€rast konteineri lĂ”petamist. Selleks vajame pĂŒsiva andmete salvestamise mehhanisme.
PĂŒsiv andmete salvestamine
On olemas kaks viisi, kuidas andmete eluiga pikendada vĂ”rreldes konteineri elueaga. Ăks viis on bind mount tehnoloogia kasutamine. Sellisel juhul saab konteineriga ĂŒhendada nĂ€iteks reaalselt olemasoleva kausta. Andmetega, mis asuvad sellises kaustas, saavad töötada ka protsessid, mis asuvad vĂ€ljaspool Dockerit. Nii nĂ€evad tmpfs mountimine ja bind mount tehnoloogia.

tmpfs mountimine ja bind mount
Bind mount tehnoloogia kasutamise miinused seisnevad selles, et selle kasutamine raskendab andmete varundamist, andmete migreerimist ja andmete jagamist mitme konteineri vahel. Palju parem on kasutada Dockeri volume pĂŒsivaks andmete salvestamiseks.
Dockeri volumid
Volume on failisĂŒsteem, mis asub hostmasinas konteineritest vĂ€ljaspool. Volumite loomise ja haldamise eest vastutab Docker. Siin on Dockeri volumi peamised omadused:
- Need on vahendid pĂŒsiva andmete salvestamiseks.
- Nad on iseseisvad ja eraldatud konteineritest.
- Nendega saavad ĂŒhiselt kasutada erinevad konteinerid.
- Nad vÔimaldavad efektiivset andmete lugemist ja kirjutamist.
- Volumes saab paigutada kaugteenuse pakkuja ressurssidele.
- Neid saab krĂŒpteerida.
- Neile saab anda nimesid.
- Konteiner saab enne tÀita volumi andmetega.
- Need on mugavad testimiseks.
Nagu nÀete, omadused Dockeri volumid on erakordsed. RÀÀgime, kuidas neid luua.
Volumite loomine
Volumeid saab luua Docker kasutades vÔi API pÀringute abil.
Siin on Dockerfile'is juhis, mis vÔimaldab luua volumi konteineri kÀivitamisel.
VOLUME /my_volumeSellise kÀsu kasutamisel loob Docker konteineri loomise jÀrel volumi, mis sisaldab juba olemasolevaid andmeid. Pange tÀhele, et Dockerfile'i kasutamisel volumi loomine ei vabasta teid kohustusest mÀÀrata volumi mountimispunkt.
Volumeid saab Dockerfile'is luua ka JSON formaadis.
Lisaks saab volumeid luua kÀsurea abil konteineri töö ajal.
Volumitega töötamine kÀsurealt
âVolumi loomine
Iseseisva volumi loomine on vÔimalik jÀrgmise kÀsu abil:
docker volume create â-name my_volumeâTeabe leidmine volumide kohta
Dockeri volumite nimekirja vaatamiseks kasutage jÀrgmist kÀsku:
docker volume lsKonkreetse volumi uurimiseks tÔhusalt:
docker volume inspect my_volumeâVolumi eemaldamine
Volumi eemaldamine on vÔimalik jÀrgmisel viisil:
docker volume rm my_volumeKÔikide mahutite, mida ei kasutata konteineritega, eemaldamiseks saate kasutada jÀrgmist kÀsku:
docker volume pruneEnne mahutite kustutamist palub Docker teil kinnitada selle toimingu sooritamine.
Kui mahuti on seotud mingi konteineriga, ei saa sellist mahutit kustutada enne, kui vastav konteiner on eemaldatud. Samuti, isegi kui konteiner on eemaldatud, ei pruugi Docker seda alati mĂ”ista. Kui see juhtub â vĂ”ite kasutada jĂ€rgmist kĂ€sku:
docker system pruneSee on mÔeldud Docker'i ressursside puhastamiseks. PÀrast selle kÀsu tÀitmist peaksite saama kustutada mahutid, mille olek oli varem ekslikult mÀÀratud.
FlĂ€kid âmount ja âvolume
Mahutitega töötamiseks peate kĂ€su vĂ€ljakutsumisel docker, sageli kasutama flĂ€kke. NĂ€iteks, et luua mahuti konteineri loomise kĂ€igus, saate kasutada jĂ€rgmist sĂŒntaksit:
docker container run --mount source=my_volume, target=/container/path/for/volume my_image Kauges minevikus (enne 2017. aastat) oli populaarne flĂ€kk --volume. Alguses kasutati seda flĂ€ki (mida saab kasutada ka lĂŒhendatud kujul, siis nĂ€eb see vĂ€lja nagu -v) iseseisvate konteinerite jaoks, samas kui flĂ€kk --mount oli mĂ”eldud Docker Swarmi keskkonnas. Kuid alates Docker 17.06-st saab flĂ€kk --mount kasutada kĂ”igis stsenaariumites.
Tuleb mĂ€rkida, et flĂ€ki kasutamisel --mount kasvab tĂ€iendavate andmete hulk, mida tuleb kĂ€skluses mĂ€rkida, kuid mitmel pĂ”hjusel on parem kasutada just seda flĂ€ki, mitte --volume. Lipuke --mount â see on ainus mehhanism, mis vĂ”imaldab töötada teenustega vĂ”i mÀÀrata mahuti draiveri parameetreid. Lisaks on selle flĂ€kiga töötamine lihtsam.
Kohalike kĂ€skude nĂ€idetes, mis on suunatud andmetega töötamisele Dockeris, vĂ”ite leida palju nĂ€iteid flĂ€ki -v. PĂŒĂŒdes nende kĂ€ske enda jaoks kohandada, arvestage, et flĂ€kid --mount ja --volume kasutavad erinevaid parameetrite formaate. See tĂ€hendab, et te ei saa lihtsalt asendada -v jĂ€rgnevaga --mount ja saada töötavat kĂ€sku.
Peamine erinevus flĂ€kkide vahel --mount ja --volume on see, et flĂ€ki kasutamisel --volume kogutakse kĂ”ik parameetrid kokku ĂŒhte vĂ€ljasse, samas kui --mount parameetrid on eraldi.
Töötades --mount parameetrid esitatakse vÔtme-vÀÀrtuse paaridena, nagu nÀiteks key=value. Need paarid eraldatakse komadega. Siin on sageli kasutatavad parameetrid --mount:
typeâ montaaĆŸi tĂŒĂŒp. Vastavaks vĂ”tme vÀÀrtuseks vĂ”ivad olla , vĂ”i . RÀÀgime siin mahutitest, seega â meid huvitab vÀÀrtusvolume.sourceâ montaaĆŸi allikas. Nimetatud mahutite puhul on see â mahuti nimi. Nimeta mahutite puhul seda vĂ”ti ei nĂ€idata. Seda saab lĂŒhendadasrc.destinationâ tee, kuhu fail vĂ”i kaust montaaĆŸitakse konteineris. Seda vĂ”tit saab lĂŒhendadadstvĂ”itarget.readonlyâ montaaĆŸib mahutit, mis on mĂ”eldud . Selle vĂ”tme kasutamine ei ole kohustuslik, vÀÀrtust ei mÀÀrata.
Siin on nÀide, kuidas kasutada --mount paljude parameetritega:
docker run --mount type=volume,source=volume_name,destination=/path/in/container,readonly my_imageKokkuvÔte
Siin on kasulikud kÀsud, millega saate töötada Docker'i mahutitega:
docker volume createdocker volume lsdocker volume inspectdocker volume rmdocker volume prune
Siin on nimekiri sageli kasutatavatest parameetritest --mount, mida saab kasutada kÀsus docker run --mount my_options my_image:
type=volumesource=volume_namedestination=/path/in/containerreadonly
NĂŒĂŒd, kui oleme selle Docker'i materjalide sarja lĂ”petanud, on aeg öelda paar sĂ”na selle kohta, kuhu suunduda edasi neile, kes uurivad Docker'i. suurepĂ€rane artikkel Docker'ist. raamat Docker'ist (ostes proovige hankida selle kĂ”ige vĂ€rskem vĂ€ljaanne). veel ĂŒks raamat, mis sobib neile, kes usuvad, et praktika on parim viis tehnoloogiate Ă”ppimiseks.
Lugupidamisega lugejad! Milliseid Docker'i materjale soovitaksite algajatele uurida?
Allikas: habr.com
