Dockeri õppimine, 6. osa: andmetega töötamine

Dockeri kohta käiva materjalisarja tõlke tänases osas räägime andmetega töötamisest. Eelkõige Dockeri köidete kohta. Nendes materjalides võrdlesime pidevalt Dockeri programmeerimismehhanisme erinevate söödavate analoogidega. Sellest traditsioonist me siinkohal kõrvale ei kaldu. Olgu Dockeri andmed vürtsid. Maailmas on palju vürtse ja Dockeril on andmetega töötamiseks palju võimalusi.

1. osa: põhitõed
2. osa: terminid ja mõisted
3. osa: Dockeri failid
4. osa: piltide suuruse vähendamine ja nende kokkupanemise kiirendamine
5. osa: käsud
6. osa: andmetega töötamine

Dockeri õppimine, 6. osa: andmetega töötamine

Pange tähele, et selle materjali ettevalmistamisel kasutati Dockeri mootori versiooni 18.09.1 ​​ja API versiooni 1.39.

Andmeid Dockeris saab salvestada kas ajutiselt või alaliselt. Alustame ajutiste andmetega.

Ajutine andmete salvestamine

Dockeri konteinerites ajutiste andmete haldamiseks on kaks võimalust.

Vaikimisi salvestatakse konteineris töötava rakenduse loodud failid kirjutatavasse konteinerikihti. Selle mehhanismi toimimiseks ei pea midagi erilist konfigureerima. See osutub odavaks ja rõõmsaks. Rakendus peab lihtsalt andmed salvestama ja jätkama oma asjade tegemist. Pärast konteineri eksisteerimise lõpetamist kaovad aga ka nii lihtsal viisil salvestatud andmed.

Ajutine failide salvestamine Dockeris on veel üks lahendus, mis sobib juhtudel, kus on vaja kõrgemat jõudlust võrreldes sellega, mis on saavutatav standardse ajutise andmesalvestusmehhanismi abil. Kui te ei pea oma andmeid salvestama kauemaks, kui konteiner on olemas, saate luua ühenduse konteineriga tmpfs – ajutine teabesalve, mis kasutab hosti RAM-i. See kiirendab andmete kirjutamise ja lugemise toiminguid.

Tihti juhtub, et andmeid on vaja salvestada ka pärast konteineri lakkamist. Selleks vajame püsivaid andmesalvestusmehhanisme.

Pidev andmete salvestamine

Andmete eluea pikendamiseks konteineri kasutusajast on kaks võimalust. Üks võimalus on kasutada sidumistehnoloogiat. Selle lähenemisviisi abil saate konteinerisse ühendada näiteks päriselu kausta. Dockerist väljaspool olevad protsessid saavad töötada ka sellisesse kausta salvestatud andmetega. Niimoodi vaata tmpfs mount ja bind mount tehnoloogia.

Dockeri õppimine, 6. osa: andmetega töötamine
Paigaldamine tmpfs ja bind mount

Sidumistehnoloogia kasutamise puudusteks on see, et selle kasutamine muudab andmete varundamise, andmete migratsiooni ja mitme konteineri vahel andmete jagamise keeruliseks. Püsivaks andmete salvestamiseks on palju parem kasutada Dockeri köiteid.

Köidete dokkija

Köide on failisüsteem, mis asub hostmasinas väljaspool konteinereid. Köiteid loob ja haldab Docker. Siin on Dockeri köidete peamised omadused:

  • Need on vahend teabe püsivaks salvestamiseks.
  • Need on sõltumatud ja konteineritest eraldatud.
  • Neid saab jagada erinevate konteinerite vahel.
  • Need võimaldavad teil korraldada tõhusat andmete lugemist ja kirjutamist.
  • Köiteid saab paigutada kaugpilveteenuse pakkuja ressurssidele.
  • Neid saab krüpteerida.
  • Neile võib panna nimed.
  • Konteiner võib korraldada mahu eeltäitmise andmetega.
  • Need on testimiseks mugavad.

Nagu näete, on Dockeri köitel hämmastavad omadused. Räägime sellest, kuidas neid luua.

Köidete loomine

Köiteid saab luua Dockeri või API päringute abil.

Siin on Dockerfile'i juhis, mis võimaldab konteineri käivitamisel helitugevust luua.

VOLUME /my_volume

Sarnase juhise kasutamisel loob Docker pärast konteineri loomist köite, mis sisaldab määratud asukohas juba olemasolevaid andmeid. Pange tähele, et kui loote köite Dockerfile'i abil, ei vabasta see teid vajadusest määrata köite ühenduspunkti.

Köiteid saate luua ka Dockerfile'is, kasutades JSON-vormingut.

Lisaks saab mahuti töötamise ajal käsureatööriistade abil luua köiteid.

Köidetega töötamine käsurealt

▍ Helitugevuse loomine

Eraldiseisva köite saate luua järgmise käsuga:

docker volume create —-name my_volume

▍Uurige teavet mahtude kohta

Dockeri köidete loendi vaatamiseks kasutage järgmist käsku:

docker volume ls

Saate uurida konkreetset helitugevust järgmiselt:

docker volume inspect my_volume

▍ Köite kustutamine

Saate kustutada sellise köite:

docker volume rm my_volume

Kõigi mahtude eemaldamiseks, mida konteinerid ei kasuta, võite kasutada järgmist käsku:

docker volume prune

Enne köidete kustutamist palub Docker teil selle toimingu kinnitada.

Kui köide on seotud konteineriga, ei saa seda köidet kustutada enne, kui vastav konteiner on kustutatud. Samal ajal, isegi kui konteiner on eemaldatud, ei saa Docker sellest alati aru. Kui see juhtub, võite kasutada järgmist käsku:

docker system prune

See on loodud Dockeri ressursside puhastamiseks. Pärast selle käsu täitmist peaksite saama kustutada köiteid, mille olek oli varem vale.

--mount ja --volume lipud

Helitugevustega töötamiseks, kui helistate käsule docker, peate sageli kasutama lippe. Näiteks mahuti loomise ajal mahu loomiseks võite kasutada järgmist konstruktsiooni:

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

Iidsetel aegadel (kuni 2017. aastani) oli lipp populaarne --volume. Esialgu see lipp (võib kasutada ka lühendatult, siis näeb välja nagu -v) kasutati eraldiseisvate konteinerite ja lipu jaoks --mount - Docker Swarmi keskkonnas. Dockeri 17.06 seisuga aga lipp --mount saab kasutada mis tahes stsenaariumi korral.

Tuleb märkida, et lipu kasutamisel --mount käsus täpsustatavate lisaandmete hulk suureneb, kuid mitmel põhjusel on parem kasutada just seda lippu, mitte aga --volume. Lipp --mount on ainus mehhanism, mis võimaldab teil töötada teenustega või määrata helitugevuse draiveri valikuid. Samuti on selle lipuga lihtsam töötada.

Olemasolevates Dockeri andmetega manipuleerimise käskude näidetes näete palju näiteid lipu kasutamisest -v. Proovides neid käske enda jaoks kohandada, pidage meeles, et lipud --mount и --volume kasutada erinevaid parameetrivorminguid. See tähendab, et te ei saa lihtsalt asendada -v edasi --mount ja saada töötav meeskond.

Peamine erinevus --mount и --volume on see lipu kasutamisel --volume kõik parameetrid kogutakse kokku ühele väljale ja kasutamisel --mount parameetrid on eraldatud.

Töötades koos --mount parameetrid on esindatud võtme-väärtuse paaridena, nimelt näeb see välja key=value. Need paarid eraldatakse komadega. Siin on sagedamini kasutatavad valikud --mount:

  • type - kinnituse tüüp. Vastava võtme väärtus võib olla siduda, maht või tmpfs. Jutt käib siin mahtudest ehk meid huvitab väärtus volume.
  • source - kinnitusallikas. Nimega köidete puhul on see köite nimi. Nimetute köidete puhul pole see võti määratud. Seda saab lühendada kuni src.
  • destination - tee, kuhu fail või kaust konteinerisse on ühendatud. Seda võtit saab lühendada dst või target.
  • readonly - paigaldab ettenähtud helitugevuse ainult lugemiseks. Selle võtme kasutamine on valikuline ja sellele ei määrata väärtust.

Siin on näide kasutamisest --mount paljude valikutega:

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

Tulemused

Siin on mõned kasulikud käsud, mida saate Dockeri köidetega töötamisel kasutada.

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

Siin on nimekiri tavaliselt kasutatavatest valikutest --mount, rakendatav vormi käsus docker run --mount my_options my_image:

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

Nüüd, kui oleme selle Dockeri seeria lõpetanud, on aeg öelda paar sõna selle kohta, kuhu Dockeri õppijad edasi liikuda saavad. siin on suurepärane hea artikkel Dockeri kohta. siin on raamat Dockerist (selle raamatu ostmisel proovige hankida selle uusim trükk). siin on veel üks raamat neile, kes arvavad, et praktika on parim viis tehnoloogia õppimiseks.

Kallid lugejad! Milliseid Dockeri materjale soovitaksite algajatele õppida?

Dockeri õppimine, 6. osa: andmetega töötamine

Allikas: www.habr.com

Lisa kommentaar