Pagkat-on Docker, Bahin 6: Pagtrabaho uban sa Data

Sa karon nga bahin sa paghubad sa usa ka serye sa mga materyal bahin sa Docker, maghisgot kami bahin sa pagtrabaho sa datos. Sa partikular, bahin sa mga volume sa Docker. Sa kini nga mga materyal, kanunay namon gitandi ang mga mekanismo sa pagprograma sa Docker nga adunay lainlaing mga makaon nga analohiya. Dili kita motipas niini nga tradisyon dinhi. Himoa nga mga panakot ang datos sa Docker. Adunay daghang mga panakot sa kalibutan, ug ang Docker adunay daghang mga paagi aron magamit ang datos.

Bahin 1: Ang mga sukaranan
Bahin 2: mga termino ug mga konsepto
Bahin 3: Dockerfiles
Bahin 4: Pagpakunhod sa gidak-on sa mga hulagway ug pagpadali sa ilang asembliya
Bahin 5: mga sugo
Bahin 6: pagtrabaho uban sa data

Pagkat-on Docker, Bahin 6: Pagtrabaho uban sa Data

Palihug timan-i nga kini nga materyal giandam gamit ang Docker engine version 18.09.1 ​​​​ug API version 1.39.

Ang datos sa Docker mahimong tipigan bisan temporaryo o permanente. Magsugod ta sa temporaryo nga datos.

Temporaryo nga pagtipig sa datos

Adunay duha ka paagi sa pagdumala sa temporaryo nga datos sa mga sudlanan sa Docker.

Sa kasagaran, ang mga file nga gihimo sa usa ka aplikasyon nga nagdagan sa usa ka sudlanan gitipigan sa usa ka sulud nga sulud sa sulud. Aron molihok kini nga mekanismo, wala’y espesyal nga kinahanglan nga i-configure. Kini nahimo nga barato ug malipayon. Ang aplikasyon kinahanglan nga i-save ang datos ug magpadayon sa pagbuhat sa kaugalingon nga butang. Bisan pa, pagkahuman nga wala na ang sulud, ang datos nga gitipig sa yano nga paagi mawala usab.

Ang temporaryo nga pagtipig sa file sa Docker usa ka lain nga solusyon nga angay alang sa mga kaso diin gikinahanglan ang usa ka mas taas nga lebel sa pasundayag kung itandi sa kung unsa ang makab-ot gamit ang sumbanan nga mekanismo sa pagtipig sa temporaryo nga datos. Kung dili nimo kinahanglan ang imong data nga tipigan nga mas dugay kaysa sa sulud nga anaa, mahimo ka nga magkonektar sa sudlanan nga tmpfs - usa ka temporaryo nga tindahan sa impormasyon nga naggamit sa RAM sa host. Kini makapadali sa pagpatuman sa pagsulat sa datos ug mga operasyon sa pagbasa.

Kanunay nga mahitabo nga ang datos kinahanglan nga tipigan bisan kung wala na ang sudlanan. Aron mahimo kini, kinahanglan namon ang padayon nga mga mekanismo sa pagtipig sa datos.

Nagpadayon nga pagtipig sa datos

Adunay duha ka paagi sa paghimo sa data nga kinabuhi nga mas taas kaysa sa sudlanan nga kinabuhi. Usa ka paagi mao ang paggamit sa teknolohiya sa bind mount. Uban niini nga pamaagi, mahimo nimong i-mount, pananglitan, usa ka tinuod nga kinabuhi nga folder sa sulud. Ang mga proseso sa gawas sa Docker mahimo usab nga magtrabaho sa mga datos nga gitipigan sa ingon nga folder. Ingon niana tan-awa tmpfs mount and bind mount technology.

Pagkat-on Docker, Bahin 6: Pagtrabaho uban sa Data
Pag-mount sa tmpfs ug pagbugkos sa mount

Ang mga disbentaha sa paggamit sa teknolohiya sa bind mount mao nga ang paggamit niini makapakomplikado sa pag-backup sa datos, paglalin sa datos, pagpaambit sa datos sa daghang mga sudlanan. Mas maayo nga gamiton ang mga volume sa Docker alang sa padayon nga pagtipig sa datos.

Mga Volume Docker

Ang volume usa ka file system nga nahimutang sa host machine gawas sa mga sudlanan. Ang mga volume gihimo ug gidumala ni Docker. Ania ang mga nag-unang kabtangan sa mga volume sa Docker:

  • Kini usa ka paagi sa permanente nga pagtipig sa kasayuran.
  • Sila independente ug nahimulag sa mga sudlanan.
  • Mahimo silang ipaambit sa lainlaing mga sudlanan.
  • Gitugotan ka nila sa pag-organisar sa episyente nga pagbasa ug pagsulat sa datos.
  • Ang mga volume mahimong ibutang sa mga kahinguhaan sa usa ka hilit nga cloud provider.
  • Mahimo silang ma-encrypt.
  • Mahimo silang hatagan og mga ngalan.
  • Ang sudlanan mahimong maghan-ay alang sa pre-populasyon sa gidaghanon nga adunay datos.
  • Kombenyente sila alang sa pagsulay.

Sama sa imong nakita, ang mga volume sa Docker adunay katingad-an nga mga kabtangan. Atong hisgotan kon unsaon kini paghimo.

Paghimo og mga Tomo

Ang mga volume mahimong mahimo gamit ang mga hangyo sa Docker o API.

Ania ang usa ka panudlo sa Dockerfile nga nagtugot kanimo sa paghimo og usa ka volume sa pagsugod sa usa ka sudlanan.

VOLUME /my_volume

Kung gigamit ang parehas nga panudlo, ang Docker, pagkahuman sa paghimo sa sulud, maghimo usa ka volume nga adunay sulud nga datos nga naa na sa gitakda nga lokasyon. Timan-i nga kung maghimo ka usa ka volume gamit ang usa ka Dockerfile, dili kini makapawala kanimo sa panginahanglan nga ipiho ang mount point sa volume.

Mahimo ka usab nga maghimo mga volume sa usa ka Dockerfile gamit ang JSON format.

Dugang pa, ang mga volume mahimong mabuhat gamit ang mga tool sa command line samtang nagdagan ang sudlanan.

Pagtrabaho uban ang mga volume gikan sa command line

▍Paghimo sa volume

Makahimo ka og usa ka standalone nga volume gamit ang mosunod nga sugo:

docker volume create —-name my_volume

▍ Pangitag impormasyon bahin sa mga volume

Aron matan-aw ang usa ka lista sa mga volume sa Docker, gamita ang mosunud nga mando:

docker volume ls

Mahimo nimong susihon ang usa ka piho nga volume sama niini:

docker volume inspect my_volume

▍Pagtangtang sa volume

Mahimo nimong papason ang usa ka volume nga sama niini:

docker volume rm my_volume

Aron makuha ang tanan nga mga volume nga wala gigamit sa mga sudlanan, mahimo nimong gamiton ang mosunud nga mando:

docker volume prune

Sa wala pa tangtangon ang mga volume, hangyoon ka ni Docker nga kumpirmahon kini nga operasyon.

Kung ang usa ka volume nalangkit sa usa ka sudlanan, kana nga volume dili mapapas hangtod ang katugbang nga sudlanan matangtang. Sa samang higayon, bisan kung ang sudlanan gikuha, ang Docker dili kanunay makasabut niini. Kung mahitabo kini, mahimo nimong gamiton ang mosunod nga sugo:

docker system prune

Gidisenyo kini aron limpyohan ang mga kapanguhaan sa Docker. Human sa pagpatuman niini nga sugo, mahimo nimong mapapas ang mga volume kansang status kaniadto dili husto.

Ang --mount ug --volume nga mga bandila

Sa pagtrabaho uban sa mga volume, sa diha nga ikaw motawag sa sugo docker, kinahanglan nimo kanunay nga mogamit mga bandera. Pananglitan, aron makahimo og usa ka volume sa panahon sa paghimo sa sudlanan, mahimo nimong gamiton kini nga pagtukod:

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

Sa karaang mga panahon (hangtod sa 2017), ang bandila popular --volume. Sa sinugdan, kini nga bandila (mahimo usab nga gamiton sa usa ka pinamubo nga porma, unya kini tan-awon sama sa -v) gigamit alang sa standalone nga mga sudlanan, ug ang bandila --mount - sa usa ka Docker Swarm nga palibot. Bisan pa, sa Docker 17.06, ang bandila --mount mahimong gamiton sa bisan unsang senaryo.

Kini kinahanglan nga matikdan nga sa diha nga ang paggamit sa bandila --mount ang kantidad sa dugang nga datos nga kinahanglan nga itakda sa mga pagtaas sa mando, apan, sa daghang mga hinungdan, mas maayo nga gamiton kini nga partikular nga bandila, ug dili --volume. Bandila --mount mao ra ang mekanismo nga nagtugot kanimo sa pagtrabaho sa mga serbisyo o pagtino sa mga kapilian sa drayber sa volume. Usab, kini nga bandila mas sayon ​​​​gamiton.

Sa kasamtangan nga mga pananglitan sa Docker data manipulation commands, makita nimo ang daghang mga pananglitan sa paggamit sa bandila. -v. Kung gisulayan nga ipahiangay kini nga mga sugo alang sa imong kaugalingon, hinumdomi nga ang mga bandila --mount и --volume gamita ang lainlaing mga format sa parameter. Sa ato pa, dili nimo basta-basta mopuli -v sa --mount ug pagkuha ug working team.

Ang nag-unang kalainan tali sa --mount и --volume mao kana kung gamiton ang bandera --volume ang tanan nga mga parameter gikolekta sa usa ka uma, ug kung gamiton --mount ang mga parameter gibulag.

Kung nagtrabaho kauban --mount Ang mga parameter girepresentahan isip key-value pairs, nga mao, kini daw key=value. Kini nga mga pares gibulag sa mga koma. Ania ang kasagarang gigamit nga mga kapilian --mount:

  • type - matang sa bukid. Ang bili alang sa katugbang nga yawe mahimong ihigot, gidaghanon o tmpfs. Naghisgot kami bahin sa mga volume dinhi, nga mao, interesado kami sa kantidad volume.
  • source - tinubdan sa bukid. Alang sa gihinganlan nga mga volume, kini ang ngalan sa volume. Alang sa wala hinganli nga mga volume, kini nga yawe wala gipiho. Mahimo kining mub-an sa src.
  • destination - ang dalan diin ang file o folder gi-mount sa sudlanan. Kini nga yawe mahimong mub-an sa dst o target.
  • readonly - nag-mount sa volume nga gituyo para lang sa pagbasa. Ang paggamit niini nga yawe kay opsyonal, ug walay bili nga gihatag niini.

Ania ang usa ka pananglitan sa paggamit --mount nga adunay daghang mga kapilian:

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

Mga resulta

Ania ang pipila ka mapuslanon nga mga sugo nga imong magamit sa pagtrabaho sa mga volume sa Docker:

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

Ania ang usa ka lista sa kasagarang gigamit nga mga kapilian alang sa --mount, magamit sa usa ka sugo sa porma docker run --mount my_options my_image:

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

Karon nga nahuman na namon kini nga serye sa Docker, oras na aron isulti ang pipila ka mga pulong bahin sa kung diin ang mga estudyante sa Docker mahimong sunod nga moadto. dinhi maayo kaayo nga artikulo bahin sa Docker. dinhi usa ka libro bahin sa Docker (sa pagpalit niini nga libro, sulayi nga makuha ang labing bag-o nga edisyon niini). dinhi laing libro alang niadtong naghunahuna nga ang praktis mao ang pinakamaayong paagi sa pagkat-on sa teknolohiya.

Minahal nga magbabasa! Unsa nga mga materyales sa Docker ang imong irekomendar aron makat-on ang mga nagsugod?

Pagkat-on Docker, Bahin 6: Pagtrabaho uban sa Data

Source: www.habr.com

Idugang sa usa ka comment