Að læra Docker, hluti 6: Vinna með gögn

Í hluta dagsins í þýðingunni á röð efnis um Docker munum við tala um að vinna með gögn. Sérstaklega um Docker bindi. Í þessum efnum bárum við stöðugt saman Docker forritunarkerfi við ýmsar ætar hliðstæður. Ekki verður vikið frá þessari hefð hér. Láttu gögn í Docker vera krydd. Það eru til mörg krydd í heiminum og Docker hefur margar leiðir til að vinna með gögn.

Hluti 1: Grunnatriðin
2. hluti: hugtök og hugtök
Part 3: Dockerfiles
Hluti 4: Að minnka stærð mynda og flýta fyrir samsetningu þeirra
Hluti 5: skipanir
6. hluti: vinna með gögn

Að læra Docker, hluti 6: Vinna með gögn

Vinsamlegast athugaðu að þetta efni var útbúið með Docker vél útgáfu 18.09.1 ​​og API útgáfu 1.39.

Gögn í Docker er hægt að geyma annað hvort tímabundið eða varanlega. Byrjum á tímabundnum gögnum.

Tímabundin gagnageymsla

Það eru tvær leiðir til að stjórna tímabundnum gögnum í Docker gámum.

Sjálfgefið er að skrár búnar til af forriti sem keyrir í gámi eru geymdar í skrifanlegu gámalagi. Til þess að þetta kerfi virki þarf ekkert sérstakt að vera stillt. Það reynist ódýrt og glaðlegt. Forritið þarf einfaldlega að vista gögnin og halda áfram að gera sitt eigið. Hins vegar, eftir að ílátið hættir að vera til, munu gögnin sem eru vistuð á svo einfaldan hátt einnig hverfa.

Tímabundin skráageymsla í Docker er önnur lausn sem hentar fyrir tilvik þar sem þú þarft meiri frammistöðu en það sem hægt er að ná með því að nota staðlaða tímabundna gagnageymslukerfið. Ef þú þarft ekki að geyma gögnin þín lengur en ílátið er til geturðu tengst ílátinu tmpfs - tímabundinni upplýsingageymslu sem notar vinnsluminni hýsilsins. Þetta mun flýta fyrir framkvæmd gagnaritunar og lestraraðgerða.

Það kemur oft fyrir að geyma þarf gögnin jafnvel eftir að gámurinn hættir að vera til. Til að gera þetta þurfum við viðvarandi gagnageymslukerfi.

Viðvarandi geymsla gagna

Það eru tvær leiðir til að gera líftíma gagna lengri en líftíma gáma. Ein leið er að nota bind mount tækni. Með þessari nálgun er hægt að tengja, til dæmis, raunverulega möppu við ílátið. Ferlar utan Docker munu einnig geta unnið með gögn sem eru geymd í slíkri möppu. Þannig er það líta út tmpfs mount og bind mount tækni.

Að læra Docker, hluti 6: Vinna með gögn
Festir tmpfs og bind mount

Ókostirnir við að nota bind mount tækni eru að notkun hennar flækir öryggisafrit af gögnum, flutningi gagna, samnýtingu gagna á milli nokkurra gáma. Það er miklu betra að nota Docker bindi fyrir viðvarandi gagnageymslu.

Bindi Docker

Rúmmál er skráarkerfi sem er staðsett á hýsingarvélinni utan gáma. Bindi eru búin til og stjórnað af Docker. Hér eru helstu eiginleikar Docker binda:

  • Þau eru leið til varanlegrar geymslu upplýsinga.
  • Þau eru sjálfstæð og aðskilin frá gámum.
  • Hægt er að deila þeim á milli mismunandi íláta.
  • Þeir gera þér kleift að skipuleggja skilvirkan lestur og ritun gagna.
  • Hægt er að setja magn á auðlindir fjarlægrar skýjaveitu.
  • Þeir geta verið dulkóðaðir.
  • Hægt er að gefa þeim nöfn.
  • Gámurinn getur útvegað forfyllingu magnsins með gögnum.
  • Þau eru þægileg til að prófa.

Eins og þú sérð hafa Docker bindi ótrúlega eiginleika. Við skulum tala um hvernig á að búa þau til.

Að búa til bindi

Hægt er að búa til bindi með því að nota Docker eða API beiðnir.

Hér er leiðbeining í Dockerfile sem gerir þér kleift að búa til bindi þegar þú byrjar ílát.

VOLUME /my_volume

Þegar svipaðar leiðbeiningar eru notaðar mun Docker, eftir að hafa búið til ílátið, búa til bindi sem inniheldur gögnin sem þegar eru til á tilgreindum stað. Athugaðu að ef þú býrð til hljóðstyrk með því að nota Dockerfile, þá losar þetta þig ekki við þörfina á að tilgreina tengipunkt hljóðstyrksins.

Þú getur líka búið til bindi í Dockerfile með JSON sniði.

Að auki er hægt að búa til bindi með því að nota skipanalínuverkfæri á meðan ílátið er í gangi.

Vinna með bindi frá skipanalínunni

▍Bjóðagerð

Þú getur búið til sjálfstætt bindi með eftirfarandi skipun:

docker volume create —-name my_volume

▍Fáðu upplýsingar um magn

Til að skoða lista yfir Docker bindi skaltu nota eftirfarandi skipun:

docker volume ls

Þú getur skoðað ákveðið bindi eins og þetta:

docker volume inspect my_volume

▍Að eyða hljóðstyrk

Þú getur eytt hljóðstyrk eins og þetta:

docker volume rm my_volume

Til að fjarlægja öll bindi sem ekki eru notuð af gámum geturðu gripið til eftirfarandi skipunar:

docker volume prune

Áður en bindum er eytt mun Docker biðja þig um að staðfesta þessa aðgerð.

Ef bindi er tengt við ílát er ekki hægt að eyða því bindi fyrr en samsvarandi ílát er eytt. Á sama tíma, jafnvel þótt ílátið sé fjarlægt, skilur Docker þetta ekki alltaf. Ef þetta gerist geturðu notað eftirfarandi skipun:

docker system prune

Það er hannað til að hreinsa upp Docker auðlindir. Eftir að þú hefur framkvæmt þessa skipun ættirðu að geta eytt bindum þar sem staða var áður röng.

Fánarnir --mount og --volume

Til að vinna með hljóðstyrk þegar þú hringir í skipunina docker, þú þarft oft að nota fána. Til dæmis, til að búa til bindi við gerð gáma, geturðu notað þessa byggingu:

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

Í fornöld (til 2017) var fáninn vinsæll --volume. Upphaflega, þetta fána (einnig hægt að nota það í styttri mynd, þá lítur það út eins og -v) var notað fyrir sjálfstæða gáma og fánann --mount - í Docker Swarm umhverfi. Hins vegar, frá og með Docker 17.06, er fáninn --mount hægt að nota í hvaða atburðarás sem er.

Það skal tekið fram að þegar notað er fána --mount magn viðbótargagna sem þarf að tilgreina í skipuninni eykst, en af ​​ýmsum ástæðum er betra að nota þennan tiltekna fána, en ekki --volume. Fáni --mount er eina vélbúnaðurinn sem gerir þér kleift að vinna með þjónustu eða tilgreina valkosti fyrir hljóðstyrksrekla. Einnig er auðveldara að vinna með þennan fána.

Í núverandi dæmum um skipanir Docker gagnavinnslu geturðu séð mörg dæmi um notkun fánans -v. Þegar þú reynir að laga þessar skipanir fyrir þig skaltu hafa í huga að fánarnir --mount и --volume nota mismunandi færibreytusnið. Það er, þú getur ekki einfaldlega skipt út -v á --mount og fá vinnuteymi.

Helsti munurinn á milli --mount и --volume er að þegar notað er fánann --volume öllum breytum er safnað saman í einum reit, og við notkun --mount færibreytur eru aðskildar.

Þegar unnið er með --mount færibreytur eru sýndar sem lykilgildapör, það lítur nefnilega út eins og key=value. Þessi pör eru aðskilin með kommum. Hér eru algengustu valkostirnir --mount:

  • type - gerð festingar. Gildið fyrir samsvarandi lykil getur verið binda, rúmmál eða tmpfs. Við erum að tala um bindi hér, það er að segja að við höfum áhuga á verðmæti volume.
  • source - tengja uppsprettu. Fyrir nafngreind bindi er þetta nafn bindisins. Fyrir ónefnd bindi er þessi lykill ekki tilgreindur. Það má stytta í src.
  • destination - slóðin sem skráin eða mappan er fest í ílátið. Hægt er að stytta þennan lykil í dst eða target.
  • readonly - setur upp það rúmmál sem ætlað er aðeins til lestrar. Notkun þessa lykils er valfrjáls og honum er ekkert gildi úthlutað.

Hér er dæmi um notkun --mount með mörgum valkostum:

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

Niðurstöður

Hér eru nokkrar gagnlegar skipanir sem þú getur notað þegar þú vinnur með Docker bindi:

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

Hér er listi yfir algengustu valkosti fyrir --mount, sem á við í skipun á forminu docker run --mount my_options my_image:

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

Nú þegar við höfum lokið þessari Docker seríu er kominn tími til að segja nokkur orð um hvert nemendur Docker geta farið næst. Hér frábær góð grein um Docker. Hér bók um Docker (þegar þú kaupir þessa bók, reyndu að fá nýjustu útgáfuna af henni). Hér önnur bók fyrir þá sem halda að æfing sé besta leiðin til að læra tækni.

Kæru lesendur! Hvaða Docker efni myndir þú mæla með fyrir byrjendur að læra?

Að læra Docker, hluti 6: Vinna með gögn

Heimild: www.habr.com

Bæta við athugasemd