Učenje Dockerja, 6. del: Delo s podatki

V današnjem delu prevoda serije gradiv o Dockerju bomo govorili o delu s podatki. Zlasti o količinah Docker. V teh materialih smo nenehno primerjali mehanizme programiranja Docker z različnimi užitnimi analogijami. Tukaj ne bomo odstopali od te tradicije. Naj bodo podatki v Dockerju začimbe. Na svetu je veliko začimb in Docker ima veliko načinov za delo s podatki.

1. del: Osnove
2. del: izrazi in pojmi
3. del: datoteke Docker
4. del: Zmanjšanje velikosti slik in pospešitev njihovega sestavljanja
5. del: ukazi
6. del: delo s podatki

Učenje Dockerja, 6. del: Delo s podatki

Upoštevajte, da je bilo to gradivo pripravljeno z različico motorja Docker 18.09.1 ​​​​in različico API-ja 1.39.

Podatke v Dockerju je mogoče shraniti začasno ali trajno. Začnimo z začasnimi podatki.

Začasno shranjevanje podatkov

Obstajata dva načina za upravljanje začasnih podatkov v vsebnikih Docker.

Datoteke, ki jih ustvari aplikacija, ki se izvaja v vsebniku, so privzeto shranjene v zapisljivem vsebniškem sloju. Da bi ta mehanizem deloval, ni treba konfigurirati nič posebnega. Izkazalo se je poceni in veselo. Aplikacija mora preprosto shraniti podatke in nadaljevati svoje delo. Ko pa vsebnik preneha obstajati, bodo izginili tudi podatki, shranjeni na tako preprost način.

Začasna shramba datotek v Dockerju je še ena rešitev, ki je primerna za primere, ko potrebujete višjo raven zmogljivosti od tiste, ki jo je mogoče doseči z uporabo standardnega mehanizma za začasno shranjevanje podatkov. Če ne potrebujete, da bi bili vaši podatki shranjeni dlje, kot obstaja vsebnik, se lahko povežete z vsebnikom tmpfs – začasno informacijsko shrambo, ki uporablja gostiteljev RAM. To bo pospešilo izvajanje operacij zapisovanja in branja podatkov.

Pogosto se zgodi, da je treba podatke shraniti tudi po tem, ko vsebnik preneha obstajati. Za to potrebujemo obstojne mehanizme za shranjevanje podatkov.

Trajno shranjevanje podatkov

Življenjsko dobo podatkov lahko podaljšate na dva načina od življenjske dobe vsebnika. Eden od načinov je uporaba tehnologije bind mount. S tem pristopom lahko v vsebnik namestite na primer mapo iz resničnega življenja. Procesi zunaj Dockerja bodo prav tako lahko delali s podatki, shranjenimi v taki mapi. Tako poglej tmpfs mount in tehnologijo bind mount.

Učenje Dockerja, 6. del: Delo s podatki
Montaža tmpfs in bind mount

Slabosti uporabe tehnologije bind mount so, da njena uporaba otežuje varnostno kopiranje podatkov, migracijo podatkov, deljenje podatkov med več vsebniki. Za trajno shranjevanje podatkov je veliko bolje uporabiti nosilce Docker.

Docker zvezkov

Nosilec je datotečni sistem, ki se nahaja na gostiteljskem računalniku zunaj vsebnikov. Zvezke ustvarja in upravlja Docker. Tu so glavne lastnosti nosilcev Docker:

  • So sredstvo za trajno shranjevanje informacij.
  • So neodvisni in ločeni od kontejnerjev.
  • Lahko se delijo med različnimi vsebniki.
  • Omogočajo vam organiziranje učinkovitega branja in pisanja podatkov.
  • Količine lahko postavite na vire oddaljenega ponudnika oblaka.
  • Lahko so šifrirani.
  • Lahko jim dajo imena.
  • Vsebnik lahko poskrbi za predhodno napolnitev nosilca s podatki.
  • Primerni so za testiranje.

Kot lahko vidite, imajo nosilci Docker neverjetne lastnosti. Pogovorimo se o tem, kako jih ustvariti.

Ustvarjanje zvezkov

Zvezke je mogoče ustvariti z uporabo zahtev Docker ali API.

Tukaj je navodilo v datoteki Dockerfile, ki vam omogoča ustvarjanje nosilca pri zagonu vsebnika.

VOLUME /my_volume

Pri uporabi podobnega navodila bo Docker po ustvarjanju vsebnika ustvaril nosilec s podatki, ki že obstajajo na določenem mestu. Upoštevajte, da če ustvarite nosilec z datoteko Dockerfile, vas to ne razbremeni potrebe po podajanju točke vpetja nosilca.

Zvezke lahko ustvarite tudi v datoteki Dockerfile z uporabo formata JSON.

Poleg tega lahko med delovanjem vsebnika ustvarite nosilce z orodji ukazne vrstice.

Delo z nosilci iz ukazne vrstice

▍Ustvarjanje glasnosti

Samostojno glasnost lahko ustvarite z naslednjim ukazom:

docker volume create —-name my_volume

▍Poiščite informacije o količinah

Če si želite ogledati seznam nosilcev Docker, uporabite naslednji ukaz:

docker volume ls

Določen obseg lahko raziščete takole:

docker volume inspect my_volume

▍Brisanje nosilca

Nosilec lahko izbrišete tako:

docker volume rm my_volume

Če želite odstraniti vse nosilce, ki jih vsebniki ne uporabljajo, lahko uporabite naslednji ukaz:

docker volume prune

Pred brisanjem nosilcev vas bo Docker prosil, da potrdite to operacijo.

Če je nosilec povezan z vsebnikom, tega nosilca ni mogoče izbrisati, dokler ni izbrisan ustrezni vsebnik. Hkrati, tudi če je vsebnik odstranjen, Docker tega vedno ne razume. Če se to zgodi, lahko uporabite naslednji ukaz:

docker system prune

Zasnovan je za čiščenje virov Docker. Po izvedbi tega ukaza bi morali imeti možnost brisanja nosilcev, katerih status je bil prej nepravilen.

Zastavici --mount in --volume

Za delo z nosilci, ko pokličete ukaz docker, boste pogosto morali uporabiti zastavice. Na primer, če želite ustvariti nosilec med ustvarjanjem vsebnika, lahko uporabite ta konstrukt:

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

V starih časih (do leta 2017) je bila zastava priljubljena --volume. Sprva je ta zastava (lahko se uporablja tudi v skrajšani obliki, potem izgleda kot -v) je bil uporabljen za samostojne posode, zastavica pa --mount - v okolju Docker Swarm. Vendar pa je od Dockerja 17.06 zastavica --mount se lahko uporablja v katerem koli scenariju.

Upoštevati je treba, da pri uporabi zastave --mount količina dodatnih podatkov, ki jih je treba navesti v ukazu, se poveča, vendar je iz več razlogov bolje uporabiti to posebno zastavico in ne --volume. Zastava --mount je edini mehanizem, ki vam omogoča delo s storitvami ali določanje možnosti gonilnika glasnosti. Poleg tega je s to zastavo lažje delati.

V obstoječih primerih ukazov za manipulacijo podatkov Docker lahko vidite veliko primerov uporabe zastavice -v. Ko poskušate te ukaze prilagoditi sebi, ne pozabite, da zastavice --mount и --volume uporabite različne oblike parametrov. To pomeni, da ne morete preprosto zamenjati -v o --mount in pridobite delovno ekipo.

Glavna razlika med --mount и --volume je, da pri uporabi zastave --volume vsi parametri so zbrani skupaj v enem polju in pri uporabi --mount parametri so ločeni.

Pri delu z --mount parametri so predstavljeni kot pari ključ-vrednost, in sicer je videti kot key=value. Ti pari so ločeni z vejicami. Tukaj so pogosto uporabljene možnosti --mount:

  • type - vrsta pritrditve. Vrednost za ustrezen ključ je lahko vežejo, Obseg ali tmpfs. Tu govorimo o volumnih, torej nas zanima vrednost volume.
  • source - mount vir. Za poimenovane nosilce je to ime nosilca. Za neimenovane nosilce ta ključ ni določen. Lahko se skrajša na src.
  • destination - pot, na katero je datoteka ali mapa nameščena v vsebniku. Ta ključ je mogoče skrajšati na dst ali target.
  • readonly - namesti predvideno glasnost samo za branje. Uporaba tega ključa ni obvezna in mu ni dodeljena nobena vrednost.

Tukaj je primer uporabe --mount z veliko možnostmi:

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

Rezultati

Tukaj je nekaj uporabnih ukazov, ki jih lahko uporabite pri delu z nosilci Docker:

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

Tukaj je seznam pogosto uporabljenih parametrov za --mount, ki se uporablja v ukazu, kot je docker run --mount my_options my_image:

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

Zdaj, ko smo zaključili to serijo Dockerjev, je čas, da povemo nekaj besed o tem, kam lahko gredo učenci Dockerja naprej. Tu odličen dober članek o Dockerju. Tu knjigo o Dockerju (pri nakupu te knjige poskusite dobiti njeno najnovejšo izdajo). Tu Še ena knjiga, ki je primerna za tiste, ki verjamejo, da je praksa najboljši način za učenje tehnologije.

Drage bralke in bralci! Katera gradiva o Dockerju bi priporočali začetnikom?

Učenje Dockerja, 6. del: Delo s podatki

Vir: www.habr.com

Dodaj komentar