Funksjoner av Docker Volumes
- Deling av volumdata og lagring mellom flere containere og vertsfilsystemer.
- Koble beholdere fra lagring.
- Sletter ikke innholdsdata når du sletter beholderen.
- Sikkerhetskopier, gjenopprett og overfør data enkelt.
I denne opplæringen vil vi forklare hva et Docker-volum er og hvordan du bruker det, samt hvordan du monterer et volum i Docker.
Krav
- Et system som kjører Linux med Docker installert.
- Et rotpassord er konfigurert.
Grunnleggende syntaks for Docker-volum
Du kan bruke kommandoen "docker volume" for å se alle tilgjengelige alternativer med volum:
docker volumDu bør se følgende utgang etter at du har angitt kommandoen ovenfor:
Bruk: docker volum KOMMANDOAdministrer volumer
Kommandoer:
lage Opprett et volum
inspect Vis detaljert informasjon om ett eller flere volumer
ls Listevolum
beskjær Fjern alle ubrukte lokale volumer
rm Fjern ett eller flere volumer
Kjør 'docker volume COMMAND --help' for mer informasjon om en kommando.
Lag et volum
For å opprette et datavolum, må du først opprette et datavolum på Docker-verten og feste volumet til beholderen.
Du kan opprette et Docker-volum ved hjelp av kommandoen "docker volume create.”Bruk for eksempel følgende kommando for å opprette et nytt Docker-volum som heter myvolume:
docker volum lage myvolumeDu bør se følgende utdata:
myvolumeDu kan liste opp ditt eksisterende volum ved hjelp av følgende kommando:
docker volum lsDu bør se følgende utdata:
FØRERVOLUMNAVNlokal c2d2815ba1a75fbfe5d0a4b69d94269e55ccbc138c7d2e19504e501f1dbe634f
lokalt myvolume
Hvis du vil se mer informasjon om volum, kjører du følgende kommando:
docker inspisere volumet mittDu bør få følgende utdata etter å ha kjørt kommandoen ovenfor:
["CreatedAt": "2020-09-12T04: 51: 31Z",
"Driver": "lokal",
"Etiketter": ,
"Mountpoint": "/ var / lib / docker / volumes / myvolume / _data",
"Name": "myvolume",
"Alternativer": ,
"Scope": "local"
]
Monter et volum
På dette tidspunktet har du ett bind som heter myvolume. I dette eksemplet oppretter du en container og monterer et myvolume til containeren.
Du kan bruke alternativet -mount for å montere volumet. Den grunnleggende syntaksen for å montere volumet til beholderen er vist nedenfor:
docker run --mount source = volume-name, destination = path-inside-container docker-imagesFor eksempel, for å opprette en Ubuntu-container og montere myvolume til containeren, kjør følgende kommando:
docker run -it --name = volumecontainer --mount source = myvolume, destination = / data ubuntuDenne kommandoen vil trekke Ubuntu-bildet fra Docker Hub, starte beholderen i interaktiv modus med navnet volumbeholder, og montere myvolume-beholderen til / dataene i / data-katalogen:
Kunne ikke finne bildet 'ubuntu: siste' lokaltsiste: Henter fra bibliotek / ubuntu
54ee1f796a1e: Trekk komplett
f7bfea53ad12: Trekk komplett
46d371e02073: Trekk komplett
b66c17bbf772: Trekk komplett
Digest: sha256: 31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
Status: Lastet ned nyere bilde for ubuntu: siste
root @ 06a477c4e444: / #
Du kan sjekke det monterte volumet med følgende kommando:
[e-postbeskyttet]: / # lsDu bør se datakatalogen i følgende utgang:
bin boot data dev etc home lib lib32 lib64 libx32 media mntopt proc root run sbin srv sys tmp usr var
Nå vil vi lage en eksempelfil med navnet fil.txt inne / datakatalog med følgende kommando:
ekko "Dette er en testfil!"> / data / fil.tekstGå ut av beholderen med følgende kommando:
exitStart den samme beholderen igjen med følgende kommando:
docker container start volumcontainerDeretter fester du den løpende beholderen med følgende kommando:
docker exec -it volumcontainer / bin / bashSjekk om filen din.txt er vedvarende med følgende:
kattedata / fil.tekstDu bør få følgende utdata etter at du har angitt kommandoen ovenfor:
Dette er en testfil!
Del data mellom containere
Du kan også dele data mellom flere containere ved hjelp av Docker-volum.
Som du vet, har vi opprettet et volum som heter myvolume, en ny container som heter volumcontainer ved hjelp av dette volumet. Vi har også opprettet en fil som heter fil.txt inne i volumet.
Nå vil vi opprette en annen container kalt volumecontainer1 med samme volumvolum ved hjelp av følgende kommando:
docker run -it --name = volumecontainer1 --mount source = myvolume, destination = / data ubuntuKjør ls-kommandoen, som vist nedenfor:
lsDu bør se datakatalogen i følgende utgang:
bin boot data dev etc home lib lib32 lib64 libx32media mnt opt proc root run sbin srv sys tmp usr var
Kjør følgende kommando, sjekk filen.tekst:
katt / data / fil.tekstDu bør se det samme innholdet som du opprettet i forrige container:
Dette er en testfil!
Monter katalogen som et volum
Du kan bruke katalogen i Docker-vertssystemet som et volum og montere det på beholderen. Du kan også bruke alternativet -v for å oppnå det samme, som vist nedenfor:
docker kjør -v "katalognavn": volumnavn docker_imageOpprett en katalog med navnet / data inne i Docker-verten med følgende kommando:
mkdir / DataDeretter oppretter du noen filer i / Data-katalogen:
cd / Databerøringsfil 1.txt-fil 2.txt-fil 3.tekst
Opprett en ny container ved hjelp av / Data-katalogen som et volum med følgende kommando:
docker run -it --name = data1 -v / Data: / Data ubuntuDenne kommandoen vil opprette en ny container og montere volumet med navnet / Data.
Kjør følgende kommando for å sjekke innholdet i / Data-katalogen:
ls -l / Data /Du bør se alle filene vi tidligere har opprettet i vertssystemet, som vist nedenfor:
totalt 0-rw-r - r-- 1 rotrot 0 12. september 05:41 fil1.tekst
-rw-r - r-- 1 rotrot 0 12. september 05:41 fil2.tekst
-rw-r - r-- 1 rotrot 0 12. september 05:41 fil3.tekst
Fjern Docker Volume
Du kan enkelt slette eller fjerne volumet ved hjelp av følgende syntaks:
docker volum rm volum-navnHvis du for eksempel vil fjerne volumet som heter myvolume, kjører du følgende kommando:
docker volum rm myvolumeDu bør få følgende feil:
Feilrespons fra demon: fjern myvolume:volumet er i bruk - [06a477c4e4444c0f815a1ec4a151a8
339bf53d5060c492af867bcaebe531dd5d, fd8d05a027a755f
1df004ccf62568b5d66989c2112115c8a652ddbc8eb960948]
Dette er fordi volumet ditt brukes av containeren. Så du må stoppe og fjerne beholderen før du fjerner volumet.
For å stoppe og fjerne beholderen, kjør følgende kommando:
docker container stopp volumcontainer volumcontainer1docker container rm volumcontainer volumcontainer1
Nå kan du enkelt fjerne volumet.
Konklusjon
I ovennevnte veiledning lærte du hva Docker-volum er, hvordan du lager det og hvordan du monterer det inne i containeren. Du lærte også hvordan du kan dele data mellom flere containere ved hjelp av volumet.