Docker har tre typer datamester som kan hjelpe - volumer, bindede monteringer og TMPF -er. Volum lagrer data i vertens filsystem, men det administreres av Docker. Bind Mounts hjelper med å lagre data hvor som helst på vertssystemet, og brukere kan direkte endre filene fra vertens egne prosesser. TMPFS -monteringene er bare lagret i vertens minne. Docker -volum er det beste alternativet fordi de er de tryggeste å bruke.
Hvordan bruke Docker Volumes
La oss prøve et praktisk eksempel. Vi skal lage noen få Ubuntu -containere som deler samme volum.
Først ønsker vi å lage volumet med følgende kommando:
$ docker volum opprette min-common-vol
Nå kan vi sjekke om volumet eksisterer:
$ docker volum ls
Drivervolumnavn
Lokal My-Common-Vol
Vi kan ytterligere inspisere volumet for å sjekke dets egenskaper:
$ docker volum inspiser min-felles vol
[
"CreateTat": "2018-04-06T07: 43: 02Z",
"Driver": "Lokal",
"Etiketter": ,
"MountPoint": "/var/lib/docker/volum/my-common-vol/_data",
"Navn": "My-Common-Vol",
"Alternativer": ,
"Omfang": "Lokal"
]
Det er viktig å huske at MountPoint faktisk er inne i VM som Docker kjører på. Så det er ikke direkte tilgjengelig.
La oss nå starte vår første server med My-Common-Vol.
(Merk for Docker Run -kommandoen, du kan bruke -monterings- og -v -alternativene til å montere et volum. Syntaksen til de to er forskjellig. Vi vil bruke det nyeste alternativet, da det er det siste.)
$ Docker Run-Name Server1-Mount Source = My-Common-Vol, Target =/App -It Ubuntu
Vi monterer My-Common-Vol to /App-mappen på Server1 Docker Container. Kommandoen ovenfor skal logge deg på Ubuntu Server1. Fra kommandolinjen gå til /app -mappen og opprett en fil:
root@1312a074055: /# cd /appSå vi har filen opprettet-på-server1.txt i /app -mappen.
La oss opprette en andre server og montere det samme My-Common-Vol-volumet til det:
$ Docker Run-Name Server2-Mount Source = My-Common-Vol, Target =/Src -It Ubuntu
Nå kan vi gå til /SRC -mappen i Server2, se etter Server1 -filer og opprette en ny fil:
root@77cd51945461: /# cd /srcI /SRC-mappen ser vi den opprettet-på-server1.TXT eksisterer allerede. Vi legger til opprettet-på-server2.tekst. Vi kan sjekke tilbake på Server1 og se den opprettet-på-server2.TXT dukker opp.
La oss starte en ny container-server3 som bare har skrivebeskyttet tilgang til volumet My-Common-Vol:
$ Docker Run-Name Server3-Mount Source = My-Common-Vol, Target =/Test, ReadOnly -It Ubuntu
Så vi har opprettet Server3 med My-Common-Vol montert på /test.
La oss prøve å skrive noe i /Test:
root@a6620da1eea1:/# cd testDu kan se at vi ikke kan skrive til min-Common-Vol fra Server3.
Du kan slette volum. Men du må fjerne alle tilknyttede containere før du kan prøve. Ellers får du en feil som denne:
$ docker volum rm my-common-vol
Feilsvar fra Daemon: Kan ikke fjerne volum: Fjern min-Common-VOL:
Volumet er i bruk - [1312A07405528BC65736F56692C06F04280779FD283A81F59F8477F28AE35BA,
77cd51945461fa03f572a6830a98a16ece47b4f840c2edfc2955c7c9a6d69d2,
A6620da1eea1a39d64f3acdf82b6d70309ee2f8d1f2c6b5d9c98252d5792a59]
I vårt tilfelle kan vi fjerne beholderne og volumet som dette:
$ docker container rm server1
$ docker container rm server2
$ docker container rm server3
$ docker volum rm my-common-vol
Hvis du vil montere flere volumer, tillater “Docker Run” -kommando -mount -alternativet også det også.
Videre studier: