NĂ« kĂ«tĂ« pjesĂ« tĂ« pĂ«rkthimit tĂ« seri materialeve mbi Docker, do tĂ« flasim pĂ«r punĂ«n me tĂ« dhĂ«nat. NĂ« veçanti â pĂ«r volumet Docker. NĂ« kĂ«to materiale, ne vazhdimisht kemi krahasuar mekanizmat e softuerit tĂ« Docker me krahasime tĂ« ndryshme ushqimore. Le tĂ« mos largohemi nga kjo traditĂ« as kĂ«tu. TĂ« dhĂ«nat nĂ« Docker le tĂ« jenĂ« erĂ«za. NĂ« botĂ« ekzistojnĂ« shumĂ« lloje erĂ«zash, dhe nĂ« Docker â shumĂ« mĂ«nyra pĂ«r tĂ« punuar me tĂ« dhĂ«nat.
â
â
â
â
â
â
Kujdes, ky material është përgatitur duke përdorur motorin Docker versione 18.09.1 dhe API version .
Të dhënat në Docker mund të ruhen ose përkohësisht, ose përhershëm. Le të fillojmë me të dhënat përkohësore.
Ruajtja e përkohshme të dhënash
Në kontejnerët Docker, organizimi i punës me të dhënat përkohësore mund të bëhet në dy mënyra.
Për default, skedarët që krijohen nga aplikacioni që punon në kontejner ruhen në një shtresë kontejneri që mbështet shkrimin. Për të funksionuar ky mekanizëm, nuk nevojitet konfigurim të veçantë. Kështu që del ekonomik dhe efektiv. Aplikacioni mjafton të ruajë të dhënat dhe të vazhdojë me punën e tij. Megjithatë, pas ndalimit të ekzistencës së kontejnerit, do të humbasin gjithashtu të dhënat e ruajtura me këtë metodë të thjeshtë.
PĂ«r ruajtjen e skedarĂ«ve pĂ«rkohĂ«sorĂ« nĂ« Docker, mund tĂ« pĂ«rdorni njĂ« zgjidhje tjetĂ«r, e cila Ă«shtĂ« e pĂ«rshtatshme pĂ«r rastet kur kĂ«rkohet njĂ« nivel mĂ« i lartĂ« performancĂ« nĂ« krahasim me atĂ« qĂ« arrihet me mekanizmin standard tĂ« ruajtjes pĂ«rkohĂ«sore. NĂ«se nuk ju nevojitet qĂ« tĂ« dhĂ«nat tuaja tĂ« ruhen mĂ« gjatĂ« se sa ekziston kontejneri, mund tĂ« lidhni njĂ« tmpfs me kontejnerin â njĂ« magazinĂ« pĂ«rkohĂ«sore 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 dhe pasi kontejneri të ketë ndaluar ekzistencën. Për këtë, do të na nevojiten mekanizmat e ruajtjes përhershme të të dhënave.
Ruajtja e përhershme e të dhënave
Ekzistojnë dy mënyra për të bërë që koha e jetës së të dhënave të jetë më e gjatë se koha e jetës së kontejnerit. Një nga mënyrat është përdorimi i teknologjisë bind mount. Me këtë qasje, mund të lidhni një folder realisht ekzistues me kontejnerin. Proceset jashtë Docker-it do të mund të punojnë me të dhënat që ruhen në këtë folder. Këtu është si lidhet tmpfs dhe teknologjia bind mount.

Lidhja tmpfs dhe bind mount
Disavantazhet e pĂ«rdorimit tĂ« teknologjisĂ« bind mount pĂ«rfshijnĂ« komplikimin e kopjimit tĂ« tĂ« dhĂ«nave, migrimin e tĂ« dhĂ«nave, dhe ndarjen e tĂ« dhĂ«nave midis kontejnerĂ«ve. ĂshtĂ« shumĂ« mĂ« mirĂ« pĂ«r ruajtjen pĂ«rhershme tĂ« tĂ« dhĂ«nave tĂ« pĂ«rdoren volumet Docker.
Volumet Docker
Një volum është një sistem fisierësh i vendosur në makinën host përtej kontejnerëve. Docker është përgjegjës për krijimin dhe administrimin e volumet. Këtu janë veçoritë kryesore të volumeteve Docker:
- Ato janë mjete për ruajtjen përhershme të informacionit.
- Ato janë të pavarura dhe të ndara nga kontejnerët.
- Ato mund të përdoren në përbashkësi nga kontejnerë të ndryshëm.
- Ato lejojnë organizimin e leximit dhe shkrimit efektiv të të dhënave.
- Volumet mund të vendosen në burimet e ofruesve të shërbimit në cloud.
- Ato mund të enkriptohen.
- Ato mund të emërtohen.
- Një kontejner mund të organizojë paraprakisht mbushjen e volumit me të dhëna.
- Ato janë të përshtatshme për testim.
Siç e shihni, volumet Docker kanë veçori të shkëlqyera. Le të flasim për mënyrat e krijimit të tyre.
Krijimi i volumeteve
Volumet mund të krijohen përmes Docker ose duke përdorur thirrje në API.
Këtu është instruksioni në Dockerfile që lejon krijimin e një volumi gjatë fillimit të kontejnerit.
VOLUME /my_volumeDuke përdorur një instruksion të tillë Docker, pas krijimit të kontejnerit, do të krijohet një volum që përmban të dhënat që tashmë ekzistojnë në vendin e caktuar. Kini parasysh se nëse krijoni një volum duke përdorur Dockerfile, kjo nuk ju çliron nga nevoja për të treguar pikën e lidhjes së volumit.
Volumet mund të krijohen gjithashtu në Dockerfile duke përdorur formatin JSON.
Përveç kësaj, volumet mund të krijohen edhe përmes komandës nga linja e komandave gjatë funksionimit të kontejnerit.
Punë me volumet nga linja e komandave
âKrijimi i njĂ« volumi
Një volum të pavarur mund të krijohet me komandën e mëposhtme:
docker volume create â-name my_volumeâZbulimi i informacionit mbi volumet
Për të parë listën e volumeteve Docker, përdorni komandën e mëposhtme:
docker volume lsPër të hetuar një volum të veçantë, mund të bëni kështu:
docker volume inspect my_volumeâShkĂ«putja e njĂ« volumi
Një volum mund të fshihet kështu:
docker volume rm my_volumePër të fshirë të gjitha volumet që nuk përdoren nga kontejnerët, mund të përdorni komandën:
docker volume prunePara se të fshini volumet, Docker do t'ju kërkojë konfirmimin për të kryer këtë operacion.
Nëse një volum është i lidhur me ndonjë kontejner, ai volum nuk mund të fshihet derisa të fshihet kontejneri përkatës. Megjithatë, edhe nëse kontejneri është fshirë, Docker nuk e kupton gjithmonë këtë. Nëse ndodh kjo - mund të përdorni komandën në vijim:
docker system pruneAjo është e destinuar për pastrimin e burimeve Docker. Pas ekzekutimit të kësaj komande, ju duhet të keni mundësinë për të fshirë volumet, statusi i të cilave më parë përcaktohej gabimisht.
Flagat âmount dhe âvolume
Për të punuar me volumet, gjatë thirrjes së komandës docker, shpesh do t'ju duhet të përdorni flagat. Për shembull, për të krijuar një volum gjatë krijimit të kontejnerit, mund të përdorni këtë strukturë:
docker container run --mount source=my_volume, target=/container/path/for/volume my_image NĂ« ditĂ«t e kaluara (para vitit 2017) flagu --volume. Fillimisht ky flag (mund tĂ« pĂ«rdoret gjithashtu nĂ« formĂ« tĂ« shkurtuar, atĂ«herĂ« duket si -v) u pĂ«rdor pĂ«r kontejnerĂ«t e pavarur, ndĂ«rsa flagu --mount â nĂ« mjedisin Docker Swarm. MegjithatĂ«, duke filluar nga Docker 17.06, flagu --mount mund tĂ« pĂ«rdoret nĂ« çdo skenar.
Duhet theksuar se kur pĂ«rdorni flagun --mount rritet volumi i tĂ« dhĂ«nave shtesĂ« qĂ« duhet tĂ« tregoni nĂ« komandĂ«, por, pĂ«r disa arsye, Ă«shtĂ« mĂ« mirĂ« tĂ« pĂ«rdorni pikĂ«risht kĂ«tĂ« flag, sesa --volume. Flag --mount â Ă«shtĂ« mekanizmi i vetĂ«m qĂ« lejon tĂ« punoni me shĂ«rbime ose tĂ« pĂ«rcaktoni parametrat e driverit tĂ« volumin. PĂ«r mĂ« tepĂ«r, Ă«shtĂ« mĂ« e lehtĂ« tĂ« punoni me kĂ«tĂ« flag.
Në shembujt ekzistues të komandave të orientuara në punën me të dhënat në Docker, mund të hasni shumë shembuj të përdorimit të flagut -v. Duke përpjekur t'i adaptoni këto komanda për vete, merrni parasysh se flagat --mount dhe --volume përdorin formate të ndryshme parametrash. Pra, nuk mund ta zëvendësoni thjesht -v në --mount dhe të merrni një komandë funksionale.
Dallimi kryesor midis --mount dhe --volume është se kur përdoret flagu --volume të gjitha parametrat mblidhen së bashku, në një fushë, ndërsa kur përdoret --mount parametrat ndahen.
Kur punoni me --mount Parametrat paraqiten si çifte çelës-vlerë, dhe konkretisht, duket si key=value. Këto çifte ndahen me presje. Këtu janë parametrat e përdorur shpesh --mount:
typeâ lloji i montimit. Vlera pĂ«r çelĂ«sin pĂ«rkatĂ«s mund tĂ« jetĂ« , ose . Po flasim kĂ«tu pĂ«r volumet, pra - na intereson vleravolume.sourceâ burimi i montimit. PĂ«r volumin e emĂ«ruar, kjo Ă«shtĂ« - emri i volumit. PĂ«r volumet e paemĂ«ruara ky çelĂ«s nuk tregohet. Ai mund tĂ« shkurtĂ«zohet nĂ«src.destinacioniâ rruga, ku skedari ose dosja montohet nĂ« kontejner. Ky çelĂ«s mund tĂ« shkurtĂ«zohet nĂ«dstosetarget.readonlyâ montohet volum, qĂ« Ă«shtĂ« i destinuar . PĂ«rdorimi i kĂ«tij çelĂ«si nuk Ă«shtĂ« obligativ, nuk i caktohet ndonjĂ« vlerĂ«.
Ja një shembull përdorimi --mount me shumë parametra:
docker run --mount type=volume,source=volume_name,destination=/path/in/container,readonly my_imagePërfundimet
Ja disa komanda të dobishme që mund të përdorni gjatë punës me volumet Docker:
docker volume createdocker volume lsdocker volume inspectdocker volume rmdocker volume prune
Ja një listë e parametrave të përdorur shpesh për --mount, të aplikueshme në komandën si docker run --mount my_options my_image:
type=volumesource=volume_namedestination=/path/in/containerreadonly
Tani, kur kemi përfunduar këtë seri materialesh mbi Docker, ka ardhur koha për të thënë disa fjalë rreth asaj se ku ata që studiojnë Docker mund të shkojnë më tej. një artikull të shkëlqyer mbi Docker. një libër mbi Docker (kur blini këtë libër, përpiquni të merrni botimin më të ri të tij). një libër tjetër, i cili do të përputhet me ata që besojnë se praktika është mënyra më e mirë për të mësuar teknologjitë.
TĂ« nderuar lexues! ĂfarĂ« materialesh mbi Docker do tĂ« rekomandonit tĂ« studionin fillestarĂ«t?
Burimi: habr.com
