Learning Docker, Part 6: U travagliu cù Dati

In a parte d'oghje di a traduzzione di una seria di materiali nantu à Docker, parleremu di travaglià cù dati. In particulare, circa volumi Docker. In questi materiali, avemu constantemente paragunatu i miccanismi di prugrammazione Docker cù diverse analogie comestibili. Ùn avemu micca deviate da sta tradizione quì. Chì i dati in Docker sò spezie. Ci hè parechje spezie in u mondu, è Docker hà parechje manere di travaglià cù dati.

Parte 1: I principii
Parte 2: termini è cuncetti
Parte 3: Dockerfiles
Parte 4: Reduce a dimensione di l'imaghjini è accelerà a so assemblea
Parte 5: cumandamenti
Parte 6: travaglià cù dati

Learning Docker, Part 6: U travagliu cù Dati

Per piacè nutate chì stu materiale hè statu preparatu cù a versione di u mutore Docker 18.09.1 ​​è a versione API 1.39.

I dati in Docker ponu esse almacenati temporaneamente o permanentemente. Accuminciamu cù dati tempuranee.

Almacenamiento temporale di dati

Ci hè duie manere di gestisce e dati tempuranee in cuntenituri Docker.

Per automaticamente, i fugliali creati da una applicazione in esecuzione in un containeru sò almacenati in una capa di cuntainer scrivibile. Per fà stu mecanismu per travaglià, nunda di speciale ùn deve esse cunfiguratu. Risulta economicu è allegru. L'applicazione hà solu bisognu di salvà i dati è cuntinuà à fà u so propiu. In ogni casu, dopu chì u cuntinuu cessa di esiste, i dati salvati in un modu cusì simplice spariranu ancu.

L'almacenamiento temporaneu di u schedariu in Docker hè una altra suluzione chì hè adattata per i casi induve un livellu più altu di prestazione hè necessariu paragunatu à ciò chì hè ottenibile utilizendu u mecanismu di almacenamentu di dati temporaneu standard. Se ùn avete micca bisognu di i vostri dati per esse guardatu più longu di u cuntinuu esiste, pudete cunnette à u container tmpfs - un magazinu di informazioni temporale chì usa a RAM di l'ospite. Questu hà da accelerà l'esekzione di e operazioni di scrittura è lettura di dati.

Succede à spessu chì e dati deve esse guardatu ancu dopu chì u cuntinuu cessà di esiste. Per fà questu, avemu bisognu di meccanismi di almacenamiento di dati persistenti.

Storage persistente di dati

Ci hè duie manere di fà a vita di dati più longa di a vita di u containeru. Una manera hè di utilizà a tecnulugia di bind mount. Cù questu approcciu, pudete muntà, per esempiu, un cartulare di vita reale à u cuntinuu. I prucessi fora di Docker seranu ancu capaci di travaglià cù dati guardati in un tali cartulare. Hè cusì circà tmpfs mount and bind mount technology.

Learning Docker, Part 6: U travagliu cù Dati
Muntamentu di tmpfs è bind mount

I disadvantages di l'usu di a tecnulugia di u bind mount sò chì u so usu complica a copia di salvezza di dati, a migrazione di dati, a spartera di dati trà parechji cuntenituri. Hè assai megliu aduprà volumi Docker per u almacenamentu di dati persistenti.

Docker di volumi

Un voluminu hè un sistema di fugliale chì si trova nantu à a macchina host fora di cuntenituri. I volumi sò creati è gestiti da Docker. Eccu e proprietà principali di i volumi Docker:

  • Sò un mezzu di almacenamiento permanente di l'infurmazioni.
  • Sò indipindenti è siparati da cuntenituri.
  • Puderanu esse spartuti trà diversi cuntenituri.
  • Permettenu di urganizà una lettura è scrittura efficiente di dati.
  • I volumi ponu esse posti nantu à e risorse di un fornitore di nuvola remota.
  • Puderanu esse criptati.
  • Puderanu esse dati nomi.
  • U cuntinuu pò organizà per pre-populazione di u voluminu cù dati.
  • Sò convenienti per pruvà.

Comu pudete vede, i volumi di Docker anu pruprietà maravigghiusu. Parlemu di cumu si creanu.

Creazione di volumi

I volumi ponu esse creati cù e dumande Docker o API.

Eccu una struzzione in u Dockerfile chì permette di creà un voluminu quandu principia un containeru.

VOLUME /my_volume

Quandu aduprate una struzzione simili, Docker, dopu à creà u cuntinuu, creà un voluminu chì cuntene e dati chì esiste digià in u locu specificatu. Innota chì sè create un voluminu utilizendu un Dockerfile, questu ùn vi libera micca da a necessità di specificà u puntu di muntazione di u voluminu.

Pudete ancu creà volumi in un Dockerfile cù u formatu JSON.

Inoltre, i volumi ponu esse creati aduprendu strumenti di linea di cumanda mentre u cuntinuu hè in esecuzione.

U travagliu cù volumi da a linea di cummanda

▍Creazione di volumi

Pudete creà un voluminu standalone cù u cumandimu seguente:

docker volume create —-name my_volume

▍Struvà infurmazione nantu à i volumi

Per vede una lista di volumi Docker, aduprate u cumandimu seguente:

docker volume ls

Pudete scopre un voluminu specificu cum'è questu:

docker volume inspect my_volume

▍Eliminazione di un voluminu

Pudete sguassà un voluminu cum'è questu:

docker volume rm my_volume

Per caccià tutti i volumi chì ùn sò micca utilizati da i cuntenituri, pudete ricorrere à u cumandamentu seguente:

docker volume prune

Prima di sguassà volumi, Docker vi dumandarà di cunfirmà sta operazione.

Se un voluminu hè assuciatu cù un cuntinuu, quellu voluminu ùn pò micca esse sguassatu finu à chì u cuntinuu currispundente hè sguassatu. À u listessu tempu, ancu s'è u cuntinuu hè eliminatu, Docker ùn capisce micca sempre questu. Se questu succede, pudete aduprà u cumandimu seguitu:

docker system prune

Hè pensatu per pulisce e risorse Docker. Dopu avè eseguitu stu cumandamentu, duvete esse capace di sguassà volumi chì u statutu era precedentemente incorrectu.

I bandieri --mount è --volume

Per travaglià cù volumi, quandu chjamate u cumandamentu docker, vi tuccherà à spessu aduprà bandiere. Per esempiu, per creà un voluminu durante a creazione di u containeru, pudete aduprà sta custruzzione:

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

In i tempi antichi (finu à 2017), a bandiera era populari --volume. Inizialmente, sta bandiera (pò ancu esse usata in una forma abbreviata, allora pare -v) hè stata utilizata per cuntenituri standalone, è a bandiera --mount - in un ambiente Docker Swarm. Tuttavia, da Docker 17.06, a bandiera --mount pò esse usatu in ogni scenariu.

Hè devi esse nutatu chì quandu si usa a bandiera --mount a quantità di dati supplementari chì deve esse specificatu in u cumandamentu aumenta, ma, per parechje ragioni, hè megliu aduprà sta bandiera particulare, è micca --volume. Bandiera --mount hè l'unicu mecanismu chì permette di travaglià cù servizii o specificà l'opzioni di u driver di voluminu. Inoltre, sta bandiera hè più faciule per travaglià.

In l'esempii esistenti di cumandamenti di manipulazione di dati Docker, pudete vede parechji esempi di l'usu di a bandiera -v. Quandu pruvate d'adattà questi cumandamenti per voi stessu, tenite in mente chì i bandieri --mount и --volume aduprà diversi furmati paràmetri. Questu hè, ùn pudete micca solu rimpiazzà -v nantu --mount è uttene una squadra di travagliu.

A diferenza principale trà --mount и --volume hè chì quandu si usa a bandiera --volume tutti i paràmetri sò culligati inseme in un campu, è quandu usu --mount i paràmetri sò separati.

Quandu travaglia cun --mount i paràmetri sò rapprisentati cum'è coppie chjave-valore, vale à dì, pare key=value. Queste coppie sò siparati da virgule. Eccu l'opzioni cumunimenti utilizati --mount:

  • type - tipu di muntagna. U valore per a chjave currispundente pò esse ligà, vulume o tmpfs. Parlemu di volumi quì, vale à dì, ci interessa u valore volume.
  • source - muntà a fonte. Per i volumi chjamati, questu hè u nome di u voluminu. Per volumi senza nome, sta chjave ùn hè micca specificatu. Pò esse scurciatu à src.
  • destination - u percorsu à quale u schedariu o u cartulare hè muntatu in u cuntinuu. Sta chjave pò esse accurtata à dst o target.
  • readonly - monte u voluminu chì hè destinatu solu per leghje. L'usu di sta chjave hè facultativa, è ùn ci hè micca attribuitu valore.

Eccu un esempiu di usu --mount cù parechje opzioni:

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

Risultati

Eccu alcuni cumandamenti utili chì pudete aduprà quandu travagliate cù volumi Docker:

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

Eccu una lista di l'opzioni cumunimenti utilizati per --mount, applicabile in un cumandamentu di a forma docker run --mount my_options my_image:

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

Avà chì avemu finitu sta serie Docker, hè ora di dì uni pochi di parolle nantu à induve i studienti Docker ponu andà dopu. quì un bellu articulu nantu à Docker. quì un libru nantu à Docker (quandu cumprà stu libru, pruvate d'avè l'edizione più recente). quì un altru libru per quelli chì pensanu chì a pratica hè u megliu modu per amparà a tecnulugia.

Beni, lettori! Chì materiali Docker ricumanderesti per i principianti per amparà?

Learning Docker, Part 6: U travagliu cù Dati

Source: www.habr.com

Add a comment