KÀesolevas Docker'i materjalide tÔlkeosas rÀÀgime andmete töötlemisest. TÀpsemalt - Docker'i mahutidest. Nendes materjalides vÔrdlesime pidevalt Docker'i tarkvaramehhanisme erinevate söödavate analoogidega. JÀtkame seda traditsiooni ka siin. Andmeid Docker'is vÔiks pidada maitseaineteks. Maailmas on palju erinevaid maitseaineid ja Docker'is on mitmeid viise andmete kÀsitlemiseks.
â
â
â
â
â
â
Pange tÀhele, et see materjal on valmistatud Docker'i mootori versiooniga 18.09.1 ja API versiooniga .
Andmed Docker'is vĂ”ivad olla ajutised vĂ”i pĂŒsivad. Alustame ajutiste andmete kĂ€sitlemisest.
Ajutine andmete salvestamine
Docker'i konteinerites saab ajutiste andmete töötlemiseks kasutada kahte meetodit.
Vaikimisi salvestatakse konteineris töötava rakenduse loodud failid konteineri kirjutamiseks toetavas kihis. Selle mehhanismi toimimiseks ei pea midagi erilist seadistama. See on odav ja efektiivne. Rakendusele piisab, kui salvestada andmed ja jÀtkata oma tegemisi. Kuid kui konteiner enam ei eksisteeri, kaovad ka sellisel lihtsal viisil salvestatud andmed.
Ajutiste failide salvestamiseks Docker'is vĂ”ib kasutada veel ĂŒhte lahendust, mis sobib neile, kes vajavad kĂ”rgemat jĂ”udlust, vĂ”rreldes tavalise ajutise andmete salvestamise mehhanismiga. Kui teile ei ole oluline, et teie andmed oleksid salvestatud kauem, kui konteiner eksisteerib, saate konteinerile ĂŒhendada tmpfs - ajutise teabe salvestamise, mis kasutab hosti mĂ€lu. See kiirendab andmete kirjutamise ja lugemise operatsioonide teostamist.
Sageli on vaja andmeid sĂ€ilitada ka pĂ€rast seda, kui konteiner peab toime tulema. Selleks on meil abiks pĂŒsivate andmete salvestamise mehhanismid.
PĂŒsiv andmete salvestamine
On olemas kaks viis, kuidas andmete eluea pikendamiseks ĂŒletada konteineri eluiga. Ăheks viisiks on bind mount tehnoloogia kasutamine. Sellise lĂ€henemise puhul saab konteineriga ĂŒhendada nĂ€iteks reaalselt eksisteeriva kaustaga. Andmetega, mis on sĂ€ilitatud sellises kaustas, saavad töötada ka protsessid, mis asuvad Dockerist vĂ€ljaspool. Nii see tmpfs-i mountimine ja bind mount tehnoloogia.

Tmpfs-i mountimine ja bind mount
Bind mount tehnoloogia kasutamise miinused seisnevad selles, et selle kasutamine raskendab andmete varundamist, andmete migreerimist ja andmete jagamist mitmete konteinerite vahel. Oluliselt parem on pideva andmete sÀilitamise jaoks kasutada Docker volumes.
Docker volumes
Volume on failisĂŒsteem, mis asub host-masinast vĂ€ljaspool konteinerit. Volumete loomise ja haldamisega tegeleb Docker. Siin on Docker volumes peamised omadused:
- Need pakuvad pideva andmete sÀilitamise vahendeid.
- Need on iseseisvad ja eraldatud konteineritest.
- Neid saavad ĂŒhiselt kasutada erinevad konteinerid.
- Need vÔimaldavad efektiivset andmete lugemist ja kirjutamist.
- Volumes saab paigutada kaugteenuse pakkuja ressurssidele.
- Need on ĆĄifreeritavad.
- Neil saab anda nimesid.
- Konteiner saab korraldada mahu eelneva tÀitmise andmetega.
- Need on mugavad testimiseks.
Nagu nĂ€ete, on Docker volumes imeliste omadustega. RÀÀkigem nĂŒĂŒd sellest, kuidas neid luua.
Volume loomine
Volumes saab luua Docker vahenditega vÔi API pÀringute abil.
Siin on Dockerfile'i kÀsk, mis vÔimaldab konteineri kÀivitamisel luua volume.
VOLUME /my_volumeSellise kÀsu kasutamisel loob Docker konteinerit luues volume, mis sisaldab andmeid, mis juba on mÀÀratud asukohas. Pange tÀhele, et kui loote volume Dockerfile'i abil, ei vabasta see teid vajadusest mÀÀrata volume'i mountimise koht.
Dockerfile'is saab volumesi luua ka JSON formaadis.
Lisaks saab volumesid luua kÀsurea tööriistade abil konteineri töötamise ajal.
Volume-dega töötamine kÀsurealt
âVolume loomine
Iseseisva volume'i saate luua jÀrgmise kÀsuga:
docker volume create --name my_volumeâTeabe selgitamine volumede kohta
Ette nÀha Docker'i mahtude loendit, kasutage jÀrgmist kÀsku:
docker volume lsKonkreetset mahtu saab uurida jÀrgmiselt:
docker volume inspect my_volumeâKustutamine
Mahuti saab kustutada jÀrgmiselt:
docker volume rm my_volumeKÔik mahud, mida konteinerid ei kasuta, saab eemaldada jÀrgmise kÀsuga:
docker volume pruneEnne Docker'i mahtude kustutamist kĂŒsitakse teilt, kas te soovite tĂ”esti selle toimingu sooritada.
Kui maht on seotud mÔne konteineriga, ei saa seda mahtu kustutada enne, kui vastav konteiner on kustutatud. Isegi kui konteiner on eemaldatud, ei pruugi Docker seda mÔista. Kui see juhtub, vÔite kasutada jÀrgmist kÀsku:
docker system pruneSee on ette nÀhtud Docker'i ressursside puhastamiseks. PÀrast selle kÀsu kÀivitamist peate saama kustutada mahud, mille olek oli varem valesti mÀÀratletud.
Lipud âmount ja âvolume
Mahudega töötamiseks peate sageli kÀsu kÀivitamisel kasutama lippusid. dockerNÀiteks, et luua maht konteineri loomise ajal, vÔite kasutada jÀrgmist konstruktsiooni:
docker container run --mount source=my_volume, target=/container/path/for/volume my_image Kauges minevikus (enne 2017. aastat) oli populaarne lipp --volume. Seda lippu (vĂ”ite kasutada ka selle lĂŒhenenud vormi, mis on -v) kasutati iseseisvate konteinerite jaoks, samas kui lipp --mount oli mĂ”eldud Docker Swarm'i keskkonnaks. Kuid alates Docker 17.06-st saab lippu --mount kasutada igasugustes stsenaariumites.
Oluline on mĂ€rkida, et lipu kasutamine --mount suureendab lisainformatsiooni hulka, mida kĂ€skluses tuleb mĂ€rkida, kuid mitmete pĂ”hjuste tĂ”ttu on parem seda lippu kasutada, mitte --volume. Lipp --mount â see on ainus mehhanism, mis vĂ”imaldab töötada teenuste ja mahtude draiverite parameetrite mÀÀramisel. Lisaks on selle lipu kasutamine lihtsam.
Olemasolevates kĂ€skudes, mis on suunatud andmetele Docker'is, vĂ”ite kohata paljusid nĂ€iteid lipu -vkasutamise kohta. PĂŒĂŒdke neid kĂ€sklusi enda jaoks kohandada, pidades meeles, et lipud --mount ja --volume kasutavad erinevaid parameetrite formaate. See tĂ€hendab, et te ei saa lihtsalt asendada -v . Tundub, et --mount ja saada toimivat kĂ€sku.
Peamine erinevus --mount ja --volume on see, et lipu kasutamisel --volume kĂ”ik parameetrid kogutakse koos ĂŒhte vĂ€lja, samas kui teiste lipu kasutamisel --mount parameetrid on eraldatud.
Töötades --mount parameetrid on esitatud vÔtme-vÀÀrtuse paaridena, see nÀeb vÀlja nagu key=value. Need paarid eraldatakse kirjutistega. Siin on sageli kasutatavad parameetrid --mount:
typeâ mount tĂŒĂŒbi. Vastavuse vĂ”tme vÀÀrtus vĂ”ib olla , vĂ”i . Siin rÀÀgime mahutist, st meid huvitab vÀÀrtusvolume.sourceâ mount allikas. Nimega mahutite puhul on see â mahuti nimi. Nimega mahutite puhul seda vĂ”tit ei nĂ€idata. Seda vĂ”ib lĂŒhendadasrc.sihtkohtâ tee, kuhu fail vĂ”i kaust mahutisse monteeritakse. Seda vĂ”tit vĂ”ib lĂŒhendadadstvĂ”itarget.readonlyâ monteerib mahuti, mis on ette nĂ€htud . Selle vĂ”ti kasutamine ei ole kohustuslik, sellele ei mÀÀrata vÀÀrtust.
Siin on nÀide, millel on mitmeid parameetreid: --mount docker run --mount type=volume,source=volume_name,destination=\/path\/in\/container,readonly my_image
Siin on kasulikud kÀsud, millega saab töötada Docker mahutitega:Summary
docker volume create
docker volume inspectdocker volume lsdocker volume rmSiin on nimekiri sageli kasutatavatest parameetritestdocker volume prune
, mida saab rakendada kÀskudes, mis on kujul --mountdocker run --mount my_options my_image type=volume:
source=volume_namedestination=\/path\/in\/containerNĂŒĂŒd, kui oleme selle Docker materjalide seeria lĂ”petanud, on aeg rÀÀkida mĂ”nest sĂ”nast selle kohta, kuhu need, kes Ă”pivad Dockerit, edasi liikuda saavad.readonly
suurepĂ€rane artikkel Dockerist. raamat Dockerist (ostes seda raamatut, pĂŒĂŒdke hankida selle uusim vĂ€ljaanne). veel ĂŒks raamat, mis sobib neile, kes arvavad, et praktika on parim viis tehnoloogia Ă”ppimiseks. Milliseid Dockeriga seotud materjale soovitaksite algajatele?
Lugupeetud lugejad! TĂ€na rÀÀgime Docker materjalide seeria tĂ”lke jĂ€rgmises osas andmete kĂ€sitlemisest. EelkĂ”ige â Docker mahutitest.
Allikas: habr.com
