Learning Docker, pjesa 6: Puna me të dhëna

Në pjesën e sotme të përkthimit të një sërë materialesh për Docker, do të flasim për punën me të dhënat. Në veçanti, në lidhje me vëllimet Docker. Në këto materiale, ne vazhdimisht krahasuam motorët e softuerit Docker me analogji të ndryshme ushqimore. Të mos devijojmë as këtu nga kjo traditë. Lërini të dhënat në Docker të jenë erëza. Ka shumë lloje erëzash në botë, dhe në Docker ka shumë mënyra për të punuar me të dhëna.

Pjesa 1: Bazat
Pjesa 2: Termat dhe Konceptet
Pjesa 3: Dockerfiles
Pjesa 4: Reduktimi i madhësive të imazhit dhe përshpejtimi i ndërtimit të tyre
Pjesa 5: komandat
Pjesa 6: Puna me të dhëna

Learning Docker, pjesa 6: Puna me të dhëna

Ju lutemi vini re se ky material është përgatitur duke përdorur versionin e motorit Docker 18.09.1 ​​dhe versionin API 1.39.

Të dhënat në Docker mund të ruhen ose përkohësisht ose përgjithmonë. Le të fillojmë me të dhënat kohore.

Ruajtja e përkohshme e të dhënave

Në kontejnerët Docker, mund të organizoni punën me të dhëna të përkohshme në dy mënyra.

Si parazgjedhje, skedarët e krijuar nga një aplikacion që ekzekutohet në një kontejner ruhen në shtresën e shkruajtshme të kontejnerit. Në mënyrë që ky mekanizëm të funksionojë, asgjë e veçantë nuk duhet të konfigurohet. Rezulton e lirë dhe e gëzuar. Aplikacioni thjesht duhet të ruajë të dhënat dhe të vazhdojë të bëjë gjënë e tij. Sidoqoftë, pasi kontejneri të pushojë së ekzistuari, të dhënat e ruajtura në këtë mënyrë të thjeshtë gjithashtu do të zhduken.

Ekziston një zgjidhje tjetër për ruajtjen e skedarëve të përkohshëm në Docker, e përshtatshme për rastet kur keni nevojë për një nivel më të lartë të performancës në krahasim me atë që mund të arrihet me mekanizmin standard të ruajtjes së përkohshme. Nëse nuk keni nevojë që të dhënat tuaja të ruhen më gjatë se sa ekziston kontejneri, mund të lidhni tmpfs me kontejnerin - një ruajtje e përkohshme informacioni që përdor RAM-in e hostit. Kjo do të përshpejtojë operacionet e shkrimit dhe leximit të të dhënave.

Shpesh ndodh që të dhënat duhet të ruhen edhe pasi kontejneri të pushojë së ekzistuari. Për këtë qëllim, do të na duhen mekanizma për ruajtjen e vazhdueshme të të dhënave.

Ruajtja e përhershme e të dhënave

Ka dy mënyra për ta bërë jetëgjatësinë e të dhënave më të gjatë se jetëgjatësia e kontejnerit. Një mënyrë është përdorimi i teknologjisë së montimit të lidhjes. Me këtë qasje, mund të montoni, për shembull, një dosje të vërtetë në kontejner. Proceset e vendosura jashtë Docker do të jenë gjithashtu në gjendje të punojnë me të dhënat e ruajtura në një dosje të tillë. Ja si shikoj Teknologjia e montimit dhe montimit tmpfs.

Learning Docker, pjesa 6: Puna me të dhëna
Montoni tmpfs dhe lidhni montimin

Disavantazhet e përdorimit të teknologjisë së montimit të lidhjes janë se përdorimi i saj ndërlikon rezervimin e të dhënave, migrimin e të dhënave dhe ndarjen e të dhënave midis kontejnerëve të shumtë. Është shumë më mirë të përdorni vëllimet Docker për ruajtjen e vazhdueshme të të dhënave.

Vëllimet e dokerit

Një vëllim është një sistem skedari që ndodhet në një makinë pritës jashtë kontejnerëve. Docker krijon dhe menaxhon vëllime. Këtu janë vetitë kryesore të vëllimeve Docker:

  • Ato janë një mjet për ruajtjen e përhershme të informacionit.
  • Ato janë të pavarura dhe të ndara nga kontejnerët.
  • Ato mund të ndahen midis kontejnerëve të ndryshëm.
  • Ato ju lejojnë të organizoni leximin dhe shkrimin efikas të të dhënave.
  • Vëllimet mund të strehohen në burimet e një ofruesi të re të largët.
  • Ato mund të kodohen.
  • Atyre mund t'u jepen emra.
  • Kontejneri mund të organizojë që vëllimi të plotësohet me të dhëna paraprakisht.
  • Ata janë të përshtatshëm për testim.

Siç mund ta shihni, vëllimet Docker kanë disa veti të shkëlqyera. Le të flasim se si t'i krijojmë ato.

Krijimi i vëllimeve

Vëllimet mund të krijohen duke përdorur Docker ose duke përdorur kërkesat API.

Këtu është një udhëzim Dockerfile që ju lejon të krijoni një vëllim kur fillon kontejneri.

VOLUME /my_volume

Kur përdorni një instruksion si ky, Docker, pasi të krijojë kontejnerin, do të krijojë një vëllim që përmban të dhënat që ekzistojnë tashmë në vendndodhjen e specifikuar. Ju lutemi vini re se nëse krijoni një vëllim duke përdorur një skedar Docker, kjo nuk ju çliron nga nevoja për të specifikuar një pikë montimi për vëllimin.

Ju gjithashtu mund të krijoni vëllime në një Dockerfile duke përdorur formatin JSON.

Për më tepër, vëllimet mund të krijohen duke përdorur vijën e komandës ndërsa kontejneri është në punë.

Puna me vëllime nga linja e komandës

▍Krijimi i një vëllimi

Ju mund të krijoni një vëllim të pavarur me komandën e mëposhtme:

docker volume create —-name my_volume

▍ Gjeni informacione rreth vëllimeve

Për të parë një listë të vëllimeve të Docker, përdorni komandën e mëposhtme:

docker volume ls

Ju mund të eksploroni një vëllim specifik si ky:

docker volume inspect my_volume

▍Fshirja e një vëllimi

Ju mund të fshini një vëllim si ky:

docker volume rm my_volume

Për të fshirë të gjithë vëllimet që nuk përdoren nga kontejnerët, mund të përdorni komandën e mëposhtme:

docker volume prune

Përpara se të fshini vëllimet, Docker do t'ju kërkojë të konfirmoni këtë operacion.

Nëse një vëllim është i lidhur me një kontejner, vëllimi nuk mund të fshihet derisa të fshihet kontejneri përkatës. Në të njëjtën kohë, edhe nëse kontejneri fshihet, Docker nuk e kupton gjithmonë këtë. Nëse kjo ndodh, mund të përdorni komandën e mëposhtme:

docker system prune

Është krijuar për të pastruar burimet e Docker. Pas ekzekutimit të kësaj komande, duhet të jeni në gjendje të fshini vëllime, statusi i të cilëve më parë ishte përcaktuar gabimisht.

Flamujt ---mali dhe --volumi

Për të punuar me vëllime ju, kur telefononi komandën docker, shpesh do t'ju duhet të përdorni flamuj. Për shembull, për të krijuar një vëllim gjatë krijimit të kontejnerit, mund të përdorni konstruktin e mëposhtëm:

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

Në kohët e lashta (deri në vitin 2017), flamuri ishte popullor --volume. Fillimisht, ky flamur (mund të përdoret edhe në formë të shkurtuar, pastaj duket si -v) u përdor për kontejnerë të pavarur, dhe flamuri --mount - në mjedisin Docker Swarm. Megjithatë, që nga Docker 17.06, flamuri --mount mund të përdoret në çdo skenar.

Duhet theksuar se gjatë përdorimit të flamurit --mount sasia e të dhënave shtesë që duhet të specifikohen në komandë rritet, por, për disa arsye, është më mirë të përdoret ky flamur sesa --volume. Flamuri --mount - Ky është i vetmi mekanizëm që ju lejon të punoni me shërbime ose të specifikoni parametrat e drejtuesit të volumit. Për më tepër, me këtë flamur është më e lehtë për t'u punuar.

Në shembujt ekzistues të komandave që synojnë të punojnë me të dhëna në Docker, mund të gjeni shumë shembuj të përdorimit të flamurit -v. Kur përpiqeni t'i përshtatni këto komanda për veten tuaj, mbani në mend se flamujt --mount и --volume përdorni formate të ndryshme parametrash. Kjo do të thotë, ju thjesht nuk mund të zëvendësoni -v mbi --mount dhe merrni një ekip pune.

Dallimi kryesor midis --mount и --volume është se kur përdoret flamuri --volume të gjithë parametrat mblidhen së bashku në një fushë dhe kur përdoren --mount parametrat janë të ndara.

Kur punoni me --mount parametrat përfaqësohen si çifte çelës-vlerë, domethënë, duket si key=value. Këto çifte ndahen me presje. Këtu janë opsionet e përdorura zakonisht --mount:

  • type - lloji i montimit. Vlera për çelësin përkatës mund të jetë lidh, vëllim ose tmpfs. Këtu bëhet fjalë për vëllime, domethënë na intereson kuptimi volume.
  • source - burimi i montimit. Për vëllimet e emërtuara, ky është emri i vëllimit. Për vëllime pa emër, ky çelës nuk është i specifikuar. Mund të shkurtohet në src.
  • destination — shtegu në të cilin skedari ose dosja është montuar në kontejner. Ky çelës mund të shkurtohet në dst ose target.
  • readonly - monton volumin që synohet vetëm për lexim. Ky çelës është opsional dhe nuk i është caktuar një vlerë.

Këtu është një shembull i përdorimit --mount me shumë parametra:

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

Rezultatet e

Këtu janë disa komanda të dobishme që mund të përdorni kur punoni me vëllime Docker:

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

Këtu është një listë e parametrave të përdorur zakonisht për --mount, i zbatueshëm në një komandë si docker run --mount my_options my_image:

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

Tani që e kemi përfunduar këtë seri Docker, është koha për të thënë disa fjalë se ku mund të shkojnë më pas nxënësit e Docker. Këtu artikull i shkëlqyeshëm i mirë për Docker. Këtu një libër për Docker (kur blini këtë libër, përpiquni të merrni botimin më të fundit). Këtu Një libër tjetër që është i përshtatshëm për ata që besojnë se praktika është mënyra më e mirë për të mësuar teknologjinë.

Të nderuar lexues! Çfarë materialesh rreth Docker do të rekomandonit për të mësuar fillestarët?

Learning Docker, pjesa 6: Puna me të dhëna

Burimi: www.habr.com

Shto një koment