Léieren Docker, Deel 6: Schafft mat Daten

Am haitegen Deel vun der Iwwersetzung vun enger Serie vu Materialien iwwer Docker schwätze mir iwwer d'Aarbecht mat Daten. Besonnesch iwwer Docker Bänn. An dëse Materialien hu mir stänneg Docker Programméierungsmechanismen mat verschiddenen essbare Analogien verglach. Mir wäerten hei net vun dëser Traditioun ofwäichen. Loosst Daten am Docker Gewierzer sinn. Et gi vill Gewierzer op der Welt, an Docker huet vill Weeër fir mat Daten ze schaffen.

Deel 1: D'Grondlage
Deel 2: Begrëffer a Konzepter
Deel 3: Dockerfiles
Deel 4: D'Gréisst vun de Biller reduzéieren an hir Assemblée beschleunegen
Deel 5: commandéiert
Deel 6: Aarbecht mat Daten

Léieren Docker, Deel 6: Schafft mat Daten

Maacht weg datt dëst Material mat der Docker Engine Versioun 18.09.1 ​​an API Versioun virbereet gouf 1.39.

Daten am Docker kënnen entweder temporär oder permanent gespäichert ginn. Loosst d'mat temporäre Daten ufänken.

Temporär Datelagerung

Et ginn zwou Weeër fir temporär Daten an Docker Container ze managen.

Par défaut ginn Dateien erstallt vun enger Applikatioun déi an engem Container leeft an enger schreiwenbarer Containerschicht gespäichert. Fir datt dëse Mechanismus funktionnéiert, muss näischt speziell konfiguréiert ginn. Et stellt sech bëlleg a lëschteg eraus. D'Applikatioun muss einfach d'Donnéeën späicheren a weider seng eege Saach maachen. Wéi och ëmmer, nodeems de Container ophält ze existéieren, verschwannen d'Donnéeën déi op sou einfach Manéier gespäichert sinn och.

Temporär Dateilagerung am Docker ass eng aner Léisung déi gëeegent ass fir Fäll wou Dir e méi héije Leeschtungsniveau braucht wéi dat wat erreechbar ass mam Standard temporärer Datespeichermechanismus. Wann Dir Är Donnéeën net méi laang gespäichert braucht wéi de Container existéiert, kënnt Dir mat dem Container tmpfs verbannen - e temporäre Informatiounsgeschäft deen den RAM vum Host benotzt. Dëst wäert d'Ausféierung vun Daten Schreiwen a Liesen Operatiounen beschleunegen.

Et geschitt dacks datt d'Donnéeën musse gespäichert ginn och nodeems de Container ophält ze existéieren. Fir dëst ze maachen, brauche mir persistent Datelagerungsmechanismen.

Persistent Datelagerung

Et ginn zwou Méiglechkeeten d'Date Liewensdauer méi laang wéi d'Container Liewensdauer ze maachen. Ee Wee ass d'Bind Mount Technologie ze benotzen. Mat dëser Approche kënnt Dir zum Beispill e richtegen Dossier op de Container montéieren. Prozesser ausserhalb vum Docker kënnen och mat Daten schaffen, déi an esou engem Dossier gespäichert sinn. Dat ass wéi kucken tmpfs Mount a Bind Mount Technologie.

Léieren Docker, Deel 6: Schafft mat Daten
Montéierung tmpfs a binde Montéierung

D'Nodeeler vun der Benotzung vun der Bind Mount Technologie sinn datt seng Notzung komplizéiert Datebackup, Datemigratioun, Datenaustausch tëscht verschiddene Container. Et ass vill besser Docker Bänn ze benotzen fir persistent Datelagerung.

Volumen Docker

E Volume ass e Dateiesystem deen op der Hostmaschinn ausserhalb vu Container läit. Bänn ginn erstallt a geréiert vum Docker. Hei sinn d'Haapteigenschaften vun Docker Bänn:

  • Si sinn e Mëttel fir permanent Späichere vun Informatioun.
  • Si sinn onofhängeg an getrennt vu Container.
  • Si kënnen tëscht verschiddene Container gedeelt ginn.
  • Si erlaben Iech effizient Liesen a Schreiwen vun Daten ze organiséieren.
  • Bänn kënnen op d'Ressourcen vun engem Remote Cloud Provider gesat ginn.
  • Si kënne verschlësselte ginn.
  • Si kënnen Nimm ginn.
  • De Container kann d'Virbevëlkerung vum Volume mat Daten arrangéieren.
  • Si si bequem fir ze testen.

Wéi Dir gesitt, hunn Docker Bänn erstaunlech Eegeschaften. Loosst eis schwätzen iwwer wéi se se kreéieren.

Erstelle Volumen

Bänn kënne mat Docker oder API Ufroe erstallt ginn.

Hei ass eng Instruktioun an der Dockerfile déi Iech erlaabt e Volume ze kreéieren wann Dir e Container start.

VOLUME /my_volume

Wann Dir eng ähnlech Instruktioun benotzt, erstellt Docker, nodeems de Container erstallt gouf, e Volumen erstallt deen d'Donnéeën enthält déi schonn an der spezifizéierter Plaz existéieren. Notéiert datt wann Dir e Volumen mat engem Dockerfile erstellt, dëst entléisst Iech net vun der Bedierfnes fir de Montagepunkt vum Volume ze spezifizéieren.

Dir kënnt och Bänn an engem Dockerfile mam JSON Format erstellen.

Zousätzlech kënnen Volumen erstallt ginn mat Kommandozeil-Tools wärend de Container leeft.

Schafft mat Bänn vun der Kommandozeil

▍Bänn erstellen

Dir kënnt e Standalone Volumen mat dem folgenden Kommando erstellen:

docker volume create —-name my_volume

▍ Fannt Informatiounen iwwer Bänn

Fir eng Lëscht vun Docker Bänn ze gesinn, benotzt de folgende Kommando:

docker volume ls

Dir kënnt e spezifescht Volumen esou entdecken:

docker volume inspect my_volume

▍E Volume läschen

Dir kënnt e Volume wéi dëst läschen:

docker volume rm my_volume

Fir all Bänn ze läschen, déi net vu Container benotzt ginn, kënnt Dir op de folgende Kommando zréckgräifen:

docker volume prune

Ier Dir Volumen läschen, freet Docker Iech dës Operatioun ze bestätegen.

Wann e Volume mat engem Container assoziéiert ass, kann dëse Volume net geläscht ginn bis de entspriechende Container geläscht ass. Zur selwechter Zäit, och wann de Container ewechgeholl gëtt, versteet Docker dat net ëmmer. Wann dat passéiert, kënnt Dir de folgende Kommando benotzen:

docker system prune

Et ass entwéckelt fir Docker Ressourcen ze botzen. Nodeems Dir dëse Kommando ausgefouert hutt, sollt Dir fäeg sinn Bänn ze läschen, deenen hire Status virdru falsch war.

D' --mount an --volume Fändelen

Fir mat Bänn ze schaffen, wann Dir de Kommando rufft docker, Dir musst dacks Fändelen benotzen. Zum Beispill, fir e Volume während der Containerschafung ze kreéieren, kënnt Dir dëse Konstrukt benotzen:

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

An antik Zäiten (bis 2017) war de Fändel populär --volume. Ufank, dëse Fändel (et kann och an enger ofkierzter Form benotzt ginn, da gesäit et aus -v) gouf fir Standalone Container benotzt, an de Fändel --mount - an engem Docker Swarm Ëmfeld. Wéi och ëmmer, wéi vum Docker 17.06, de Fändel --mount kann an all Szenario benotzt ginn.

Et sollt bemierkt datt wann Dir de Fändel benotzt --mount d'Quantitéit un zousätzlech Donnéeën, déi am Kommando spezifizéiert musse ginn, erhéicht, awer aus verschiddene Grënn ass et besser dëse spezielle Fändel ze benotzen an net --volume. Fändel --mount ass deen eenzege Mechanismus deen Iech erlaabt mat Servicer ze schaffen oder Volumen Driver Optiounen ze spezifizéieren. Och ass dëse Fändel méi einfach mat ze schaffen.

An den existente Beispiller vun Docker Datemanipulatiounsbefehle kënnt Dir vill Beispiller fir d'Benotzung vum Fändel gesinn -v. Wann Dir probéiert dës Befehle fir Iech selwer unzepassen, denkt drun datt d'Fändelen --mount и --volume benotzt verschidde Parameterformater. Dat ass, Dir kënnt net einfach ersetzen -v op --mount a kréien eng schaffen Equipe.

Den Haaptunterschied tëscht --mount и --volume ass, datt wann Dir de Fändel benotzt --volume all Parameteren sinn zesummen an engem Terrain gesammelt, a wann Dir benotzt --mount Parameteren sinn getrennt.

Wann Dir schafft mat --mount Parameteren sinn als Schlëssel-Wäert Puer duergestallt, nämlech, et ausgesäit key=value. Dës Puer sinn duerch Komma getrennt. Hei sinn déi allgemeng benotzt Optiounen --mount:

  • type - Montéierung Typ. De Wäert fir de entspriechende Schlëssel kann sinn kruet, Volume oder tmpfs. Mir schwätzen iwwer Bänn hei, dat ass, mir sinn interesséiert am Wäert volume.
  • source - Mount Quell. Fir benannt Bänn ass dëst den Numm vum Volume. Fir onbenannt Bänn ass dëse Schlëssel net spezifizéiert. Et kann verkierzt ginn src.
  • destination - de Wee op deen d'Datei oder den Dossier am Container montéiert ass. Dëse Schlëssel kann verkierzt ginn dst oder target.
  • readonly - montéiert de Volume, dee geduecht ass nëmme fir ze liesen. D'Benotzung vun dësem Schlëssel ass fakultativ, a kee Wäert gëtt him zougewisen.

Hei ass e Beispill vun der Benotzung --mount mat villen Optiounen:

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

Resultater

Hei sinn e puer nëtzlech Kommandoen déi Dir benotze kënnt wann Dir mat Docker Volumen schafft:

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

Hei ass eng Lëscht vun allgemeng benotzt Optiounen fir --mount, applicabel an engem Kommando vun der Form docker run --mount my_options my_image:

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

Elo datt mir dës Docker Serie ofgeschloss hunn, ass et Zäit e puer Wierder ze soen iwwer wou Docker Léierpersonal nächst kënne goen. hei super gudden Artikel iwwer Docker. hei e Buch iwwer Docker (wann Dir dëst Buch kaaft, probéiert déi lescht Editioun dovun ze kréien). hei en anert Buch fir déi déi mengen datt Praxis de beschte Wee ass fir Technologie ze léieren.

Léif Lieser! Wéi eng Docker Material géift Dir fir Ufänger recommandéieren ze léieren?

Léieren Docker, Deel 6: Schafft mat Daten

Source: will.com

Setzt e Commentaire