Learning Docker, Diel 6: Wurkje mei gegevens

Yn it hjoeddeiske diel fan 'e oersetting fan in searje materialen oer Docker sille wy prate oer wurkjen mei gegevens. Benammen oer Docker-voluminten. Yn dizze materialen fergelike wy konstant Docker-programmearringmeganismen mei ferskate ytbere analogyen. Wy sille hjir net fan dizze tradysje ôfwykje. Lit gegevens yn Docker krûden wêze. D'r binne in protte krûden yn 'e wrâld, en Docker hat in protte manieren om mei gegevens te wurkjen.

Diel 1: De basis
Diel 2: termen en begripen
Diel 3: Dockerfiles
Diel 4: De grutte fan ôfbyldings ferminderje en har gearstalling fersnelle
Diel 5: kommando's
Diel 6: wurkje mei gegevens

Learning Docker, Diel 6: Wurkje mei gegevens

Tink derom dat dit materiaal waard taret mei de Docker-motorferzje 18.09.1 ​​en API-ferzje 1.39.

Gegevens yn Docker kinne tydlik as permanint wurde opslein. Litte wy begjinne mei tydlike gegevens.

Tydlike gegevens opslach

D'r binne twa manieren om tydlike gegevens te behearjen yn Docker-konteners.

Standert wurde bestannen makke troch in applikaasje dy't yn in kontener rint, opslein yn in skriuwbere kontenerlaach. Om dit meganisme te wurkjen, hoecht neat spesjaal te konfigureare. It docht bliken goedkeap en fleurich. De applikaasje moat gewoan de gegevens bewarje en trochgean mei har eigen ding te dwaan. Nei't de kontener lykwols ophâldt te bestean, sille de op sa'n ienfâldige manier bewarre gegevens ek ferdwine.

Tydlike bestân opslach yn Docker is in oare oplossing dy't geskikt is foar gefallen wêr't in heger nivo fan prestaasjes fereaske is yn ferliking mei wat te berikken is mei it standert tydlike gegevensopslachmeganisme. As jo ​​​​net nedich hawwe dat jo gegevens langer wurde opslein as de kontener bestiet, kinne jo ferbine mei de kontener tmpfs - in tydlike ynformaasjewinkel dy't de RAM fan 'e host brûkt. Dit sil de útfiering fan gegevens skriuwen en lêsoperaasjes fersnelle.

It bart faak dat de gegevens moatte wurde opslein ek neidat de kontener ophâldt te bestean. Om dit te dwaan, hawwe wy persistente gegevensopslachmeganismen nedich.

Persistente gegevens opslach

D'r binne twa manieren om de gegevenslibben langer te meitsjen as de kontenerlibben. Ien manier is te brûken bind mount technology. Mei dizze oanpak kinne jo bygelyks in echte map op 'e kontener montearje. Processen bûten Docker sille ek kinne wurkje mei gegevens opslein yn sa'n map. Dat is hoe sjen tmpfs mount en binde mount technology.

Learning Docker, Diel 6: Wurkje mei gegevens
Montage tmpfs en binde mount

De neidielen fan it brûken fan de bind-mount-technology binne dat it gebrûk dêrfan data-backup, gegevensmigraasje, gegevens dielen ûnder ferskate konteners komplisearret. It is folle better om Docker-voluminten te brûken foar persistente gegevensopslach.

Volumes Docker

In folume is in bestânsysteem dat op 'e hostmasine bûten konteners leit. Folumes wurde makke en beheard troch Docker. Hjir binne de wichtichste eigenskippen fan Docker-voluminten:

  • Se binne in middel foar permaninte opslach fan ynformaasje.
  • Se binne ûnôfhinklik en skieden fan konteners.
  • Se kinne wurde dield tusken ferskate konteners.
  • Se kinne jo effisjint lêzen en skriuwen fan gegevens organisearje.
  • Folumes kinne wurde pleatst op 'e boarnen fan in wolkprovider op ôfstân.
  • Se kinne wurde fersifere.
  • Se kinne nammen wurde jûn.
  • De kontener kin soargje foar pre-befolking fan it folume mei gegevens.
  • Se binne handich foar testen.

Lykas jo kinne sjen, hawwe Docker-voluminten geweldige eigenskippen. Litte wy prate oer hoe't jo se meitsje.

Voluminten oanmeitsje

Folumes kinne wurde makke mei Docker- of API-oanfragen.

Hjir is in ynstruksje yn 'e Dockerfile wêrmei jo in folume kinne meitsje by it starten fan in kontener.

VOLUME /my_volume

By it brûken fan in ferlykbere ynstruksje sil Docker, nei it meitsjen fan de kontener, in folume meitsje mei de gegevens dy't al op 'e opjûne lokaasje besteane. Tink derom dat as jo in folume meitsje mei in Dockerfile, dit jo net befrijt fan 'e needsaak om it berchpunt fan it folume op te jaan.

Jo kinne ek folumes meitsje yn in Dockerfile mei it JSON-formaat.

Derneist kinne folumes makke wurde mei help fan kommandorigel-ark wylst de kontener rint.

Wurkje mei folumes fanút de kommandorigel

▍ Oanmeitsjen fan folume

Jo kinne in standalone folume meitsje mei it folgjende kommando:

docker volume create —-name my_volume

▍Fyn ynformaasje oer folumes

Om in list fan Docker-voluminten te besjen, brûk it folgjende kommando:

docker volume ls

Jo kinne in spesifyk folume ferkenne lykas dit:

docker volume inspect my_volume

▍ In folume wiskje

Jo kinne in folume wiskje lykas dit:

docker volume rm my_volume

Om alle folumes te ferwiderjen dy't net wurde brûkt troch konteners, kinne jo taflecht ta it folgjende kommando:

docker volume prune

Foardat jo folumes wiskje, sil Docker jo freegje dizze operaasje te befêstigjen.

As in folume is assosjearre mei in kontener, dat folume kin net wiske wurde oant de oerienkommende kontener is wiske. Tagelyk, sels as de kontener fuorthelle is, begrypt Docker dit net altyd. As dit bart, kinne jo it folgjende kommando brûke:

docker system prune

It is ûntworpen om Docker-boarnen op te romjen. Nei it útfieren fan dit kommando moatte jo folumes kinne wiskje wêrfan de status earder ferkeard wie.

De flaggen --mount en --volume

Om te wurkjen mei folumes, as jo neame it kommando docker, Jo sille faak moatte brûke flaggen. Bygelyks, om in folume te meitsjen by it meitsjen fan kontener, kinne jo dit konstruksje brûke:

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

Yn âlde tiden (oant 2017) wie de flagge populêr --volume. Yn it earstoan, dizze flagge (it kin ek brûkt wurde yn in ôfkoarte foarm, dan liket it -v) waard brûkt foar standalone konteners, en de flagge --mount - yn in Docker Swarm-omjouwing. Lykwols, as fan Docker 17.06, de flagge --mount kin brûkt wurde yn elk senario.

Dêrby moat opmurken wurde dat by it brûken fan de flagge --mount de hoemannichte ekstra gegevens dy't moatte wurde opjûn yn it kommando nimt ta, mar om ferskate redenen is it better om dizze bepaalde flagge te brûken, en net --volume. Flagge --mount is it ienige meganisme wêrmei jo te wurkjen mei tsjinsten of opjaan opsjes foar folume stjoerprogramma. Ek is dizze flagge makliker om mei te wurkjen.

Yn 'e besteande foarbylden fan kommando's foar Docker-gegevensmanipulaasje kinne jo in protte foarbylden sjen fan it gebrûk fan' e flagge -v. As jo ​​​​besykje dizze kommando's foar josels oan te passen, hâld dan yn gedachten dat de flaggen --mount и --volume brûke ferskillende parameter formaten. Dat is, jo kinne net gewoan ferfange -v op --mount en krije in wurkteam.

It wichtichste ferskil tusken --mount и --volume is dat by it brûken fan de flagge --volume alle parameters wurde sammele byinoar yn ien fjild, en by it brûken --mount parameters wurde skieden.

By it wurkjen mei --mount parameters wurde fertsjintwurdige as kaai-wearde pearen, nammentlik, it liket key=value. Dizze pearen wurde skieden troch komma's. Hjir binne de meast brûkte opsjes --mount:

  • type - mount type. De wearde foar de oerienkommende kaai kin wêze bine, folume of tmpfs. Wy prate hjir oer folumes, dat is, wy binne ynteressearre yn 'e wearde volume.
  • source - mount boarne. Foar neamde bondels is dit de namme fan 'e bondel. Foar net neamde folumes is dizze kaai net oantsjutte. It kin wurde ynkoarte ta src.
  • destination - it paad wêrop it bestân of map is monteard yn 'e kontener. Dizze kaai kin wurde ynkoarte ta dst of target.
  • readonly - mounts it folume dat is bedoeld allinnich foar it lêzen. It brûken fan dizze kaai is opsjoneel, en gjin wearde wurdt tawiisd oan it.

Hjir is in foarbyld fan gebrûk --mount mei in protte opsjes:

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

Resultaten

Hjir binne wat nuttige kommando's dy't jo kinne brûke as jo wurkje mei Docker-volumes:

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

Hjir is in list mei meast brûkte opsjes foar --mount, fan tapassing yn in kommando fan 'e foarm docker run --mount my_options my_image:

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

No't wy dizze Docker-searje foltôge hawwe, is it tiid om in pear wurden te sizzen oer wêr't Docker-learders neist kinne gean. hjir geweldich goed artikel oer Docker. hjir in boek oer Docker (by it keapjen fan dit boek, besykje de meast resinte edysje derfan te krijen). hjir in oar boek foar dyjingen dy't tinke dat praktyk de bêste manier is om technology te learen.

Dear readers! Hokker Docker-materialen soene jo oanbefelje foar begjinners om te learen?

Learning Docker, Diel 6: Wurkje mei gegevens

Boarne: www.habr.com

Add a comment