Learning Docker, 6. zatia: Datuekin lan egitea

Dockerri buruzko material sorta baten itzulpenaren gaurko atalean, datuekin lan egiteari buruz hitz egingo dugu. Bereziki, Docker bolumenari buruz. Material horietan, etengabe alderatu ditugu Docker programazio mekanismoak hainbat analogia jangarriekin. Hemen ez gara tradizio honetatik aldenduko. Utzi Docker-eko datuak espezieak izan. Munduan espezie asko daude, eta Docker-ek datuekin lan egiteko modu asko ditu.

1. zatia: oinarriak
2. zatia: terminoak eta kontzeptuak
3. zatia: Dockerfiles
4. zatia: Irudien tamaina murriztea eta haien muntaia bizkortzea
5. zatia: aginduak
6. zatia: datuekin lan egitea

Learning Docker, 6. zatia: Datuekin lan egitea

Kontuan izan material hau Docker motorra 18.09.1 ​​​​bertsioa eta API bertsioa erabiliz prestatu dela 1.39.

Docker-en datuak aldi baterako edo betirako gorde daitezke. Has gaitezen aldi baterako datuekin.

Datuen aldi baterako biltegiratzea

Docker edukiontzietan aldi baterako datuak kudeatzeko bi modu daude.

Lehenespenez, edukiontzi batean exekutatzen ari den aplikazio batek sortutako fitxategiak edukiontzi idazteko geruza batean gordetzen dira. Mekanismo honek funtziona dezan, ez da ezer berezirik konfiguratu behar. Merke eta alaia ateratzen da. Aplikazioak datuak gorde eta bere gauza egiten jarraitu besterik ez du behar. Hala ere, edukiontzia existitzeari utzi ondoren, modu errazean gordetako datuak ere desagertuko dira.

Docker-en aldi baterako fitxategiak biltegiratzea errendimendu-maila handiagoa behar den kasuetarako egokia den beste irtenbide bat da aldi baterako datuak biltegiratzeko mekanismo estandarra erabiliz lor daitekeenarekin alderatuta. Ez baduzu zure datuak edukiontzia dagoen baino denbora gehiago gorde behar, edukiontzira konekta zaitezke tmpfs - ostalariaren RAMa erabiltzen duen aldi baterako informazio biltegira. Horrek datuak idazteko eta irakurtzeko eragiketen exekuzioa azkartuko du.

Askotan gertatzen da datuak gorde behar direla edukiontzia existitzeari utzi ondoren ere. Horretarako, datuak gordetzeko mekanismo iraunkorrak behar ditugu.

Datuen biltegiratze iraunkorra

Datuen iraupena edukiontziaren iraupena baino luzeagoa izateko bi modu daude. Modu bat bind muntaketa teknologia erabiltzea da. Planteamendu honekin, adibidez, bizitza errealeko karpeta bat munta dezakezu edukiontzian. Dockerretik kanpoko prozesuek ere karpeta horretan gordetako datuekin lan egin ahal izango dute. Halaxe begiratu tmpfs muntatzeko eta lotzeko muntatzeko teknologia.

Learning Docker, 6. zatia: Datuekin lan egitea
Tmpfs muntatzea eta bind muntatzea

Lotura muntatzeko teknologia erabiltzearen desabantailak bere erabilerak datuen babeskopia, datuen migrazioa eta hainbat edukiontziren artean datuak partekatzea zailtzen duela dira. Askoz hobe da Docker bolumenak erabiltzea datu iraunkorrak gordetzeko.

Bolumen Docker

Bolumena edukiontzietatik kanpo ostalari-makinan dagoen fitxategi-sistema da. Bolumenak Docker-ek sortu eta kudeatzen ditu. Hona hemen Docker bolumenen propietate nagusiak:

  • Informazioa betirako gordetzeko baliabideak dira.
  • Independenteak dira eta ontzietatik bereizita daude.
  • Edukiontzi ezberdinen artean parteka daitezke.
  • Datuen irakurketa eta idazketa eraginkorra antolatzeko aukera ematen dute.
  • Bolumenak urrutiko hodeiko hornitzaile baten baliabideetan jar daitezke.
  • Zifratu egin daitezke.
  • Izena eman diezaiekete.
  • Edukiontziak bolumena aurretiaz betetzeko antola dezake datuekin.
  • Erosoak dira probak egiteko.

Ikus dezakezun bezala, Docker bolumenak propietate harrigarriak dituzte. Hitz egin dezagun nola sortu.

Bolumenak sortzea

Bolumenak Docker edo API eskaerak erabiliz sor daitezke.

Hona hemen edukiontzi bat abiaraztean bolumen bat sortzeko aukera ematen duen Dockerfile-ko instrukzio bat.

VOLUME /my_volume

Antzeko instrukzioa erabiltzean, Docker-ek, edukiontzia sortu ondoren, zehaztutako kokapenean lehendik dauden datuak dituen bolumen bat sortuko du. Kontuan izan Dockerfile bat erabiliz bolumen bat sortzen baduzu, horrek ez zaituela kentzen bolumenaren muntatze-puntua zehazteko beharra.

Dockerfile batean bolumenak ere sor ditzakezu JSON formatua erabiliz.

Horrez gain, bolumenak komando lerroko tresnak erabiliz sor daitezke edukiontzia martxan dagoen bitartean.

Komando-lerroko bolumenekin lan egitea

▍Bolumenak sortzea

Bolumen autonomo bat sor dezakezu komando honekin:

docker volume create —-name my_volume

▍Bolumenean buruzko informazioa aurkitu

Docker bolumenen zerrenda ikusteko, erabili komando hau:

docker volume ls

Horrelako bolumen zehatz bat araka dezakezu:

docker volume inspect my_volume

▍Bolumen bat ezabatzea

Horrelako bolumen bat ezaba dezakezu:

docker volume rm my_volume

Edukiontziek erabiltzen ez dituzten bolumen guztiak ezabatzeko, komando honetara jo dezakezu:

docker volume prune

Bolumenak ezabatu aurretik, Docker-ek eragiketa hau berresteko eskatuko dizu.

Bolumen bat edukiontzi bati lotuta badago, bolumen hori ezin da ezabatu dagokion edukiontzia ezabatu arte. Aldi berean, edukiontzia kendu arren, Docker-ek ez du beti hau ulertzen. Hau gertatzen bada, komando hau erabil dezakezu:

docker system prune

Docker baliabideak garbitzeko diseinatuta dago. Komando hau exekutatu ondoren, egoera okerra zuten bolumenak ezabatu ahal izango dituzu.

--mount eta --volume banderak

Bolumenekin lan egiteko, komandoa deitzen duzunean docker, askotan banderak erabili beharko dituzu. Adibidez, edukiontzia sortzean bolumen bat sortzeko, eraikuntza hau erabil dezakezu:

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

Antzina (2017ra arte), bandera ezaguna zen --volume. Hasieran, bandera hau (forma laburtu batean ere erabil daiteke, gero itxura du -v) edukiontzi autonomoetarako erabiltzen zen, eta bandera --mount - Docker Swarm ingurunean. Hala ere, Docker 17.06tik aurrera, bandera --mount edozein eszenatokitan erabil daiteke.

Kontuan izan behar da bandera erabiltzean --mount komandoan zehaztu beharreko datu gehigarrien kopurua handitzen da, baina, hainbat arrazoirengatik, hobe da bandera jakin hau erabiltzea, eta ez --volume. Bandera --mount zerbitzuekin lan egiteko edo bolumen kontrolatzailearen aukerak zehazteko aukera ematen duen mekanismo bakarra da. Gainera, bandera hau errazagoa da lan egiteko.

Dauden Docker datuak manipulatzeko komandoen adibideetan, banderaren erabileraren adibide asko ikus ditzakezu -v. Komando hauek zeure buruari egokitzen saiatzean, kontuan izan banderak --mount и --volume parametro formatu desberdinak erabili. Hau da, ezin duzu ordezkatu besterik gabe -v on --mount eta lantalde bat lortu.

arteko desberdintasun nagusia --mount и --volume hori da bandera erabiltzean --volume parametro guztiak eremu batean biltzen dira, eta erabiltzean --mount parametroak bereizten dira.

Lanean ari zarenean --mount parametroak gako-balio bikote gisa irudikatzen dira, hots, itxura key=value. Bikote hauek komaz bereizten dira. Hona hemen erabili ohi diren aukerak --mount:

  • type - muntaketa mota. Dagokion gakoaren balioa izan daiteke lotu, bolumena edo tmpfs. Bolumenez ari gara hemen, hau da, balioa interesatzen zaigu volume.
  • source - muntatu iturria. Bolumen izendunetarako, hau da bolumenaren izena. Izenik gabeko bolumenetarako, gako hau ez dago zehaztuta. Laburtu daiteke src.
  • destination - fitxategia edo karpeta edukiontzian muntatzen den bidea. Gako hau laburtu daiteke dst edo target.
  • readonly - aurreikusitako bolumena muntatzen du irakurtzeko bakarrik. Gako hau erabiltzea hautazkoa da, eta ez zaio baliorik esleitzen.

Hona hemen erabileraren adibide bat --mount aukera askorekin:

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

Emaitzak

Hona hemen Docker bolumenekin lan egiten duzunean erabil ditzakezun komando erabilgarriak:

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

Hona hemen erabili ohi diren aukeren zerrenda --mount, formularioko komando batean aplikagarria docker run --mount my_options my_image:

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

Docker serie hau osatu dugunean, Docker-eko ikasleak hurrengo nora joan daitezkeen hitz batzuk esateko garaia da. Hemen Dockerri buruzko artikulu bikaina. Hemen Dockerri buruzko liburu bat (liburu hau erostean, saiatu haren azken edizioa lortzen). Hemen beste liburu bat praktika teknologia ikasteko modurik onena dela uste dutenentzat.

Irakurle maitea! Zein Docker material gomendatuko zenieke hasiberriei ikasteko?

Learning Docker, 6. zatia: Datuekin lan egitea

Iturria: www.habr.com

Gehitu iruzkin berria