Kako deluje Docker shranjevanje: Prostornine proti vezanim nosilcem | INTROSERV
EUR
european

EUR

usa

USD

Slovenia Sl
Ex. VAT Ex. VAT 0%

Kako deluje Docker shranjevanje: Prostornine proti vezanim nosilcem

Uvod

V tem vodiču se boste naučili, kako deluje Docker shranjevanje in kako ohraniti podatke z uporabo Docker Volumes in Bind Mounts. Prav tako boste razumeli ključne razlike med temi pristopi in kdaj uporabiti vsakega v produkciji. To vam pomaga preprečiti izgubo podatkov in oblikovati zanesljive sisteme v kontejnerjih.

Predpogoji

  • Ciljna publika: Začetniki sistemski administratorji
  • Ocenjeni čas: ~30 minut
  • Operacijski sistem: Kateri koli OS s podporo za Docker, kot so Ubuntu 22.04+, Debian 12+, CentOS Stream ali macOS z Docker Desktop
  • Programska oprema: Docker 24.0.0 ali novejši
  • Dovoljenja: Uporabnik z dostopom do Dockerja ali sudo privilegiji
  • Strojna oprema: Vsaj 2 GB RAM in 10 GB prostega prostora na disku
  • Mreža: Dostop do interneta za prenos slik kontejnerjev
  • Predznanje: Osnovna uporaba ukazne vrstice in razumevanje kontejnerjev

Korak 1: Razumevanje delovanja Docker shranjevanja

Docker kontejnerji uporabljajo slojni datotečni sistem. Vsak kontejner ima zapisljiv sloj na vrhu slojev slike, ki so samo za branje.

Kaj se zgodi, ko kontejner zapiše podatke

  1. Docker shranjuje sloje slike kot samo za branje
  2. Ko zaženete kontejner, Docker doda zapisljiv sloj
  3. Vse spremembe datotek se zgodijo samo v tem zapisljivem sloju

Rezultat

Ko izbrišete kontejner, so vsi podatki v zapisljivem sloju izgubljeni. To pomeni, da je shranjevanje kontejnerjev privzeto efemerno.

Info

To vedenje je uporabno za aplikacije brez stanja, ne pa za baze podatkov ali trajne storitve.

Korak 2: Ustvarjanje in uporaba Docker Volumes

Docker Volumes so upravljane lokacije za shranjevanje, ki jih ustvari in vzdržuje Docker.

Ustvarite volumen

Zaženite naslednji ukaz:

docker volume create my_volume

Videti bi morali ime volumna, ki je vrnjeno.

Uporabite volumen v kontejnerju

Zaženite naslednji ukaz:

docker run -d -v my_volume:/app/data --name volume_test busybox

Docker namesti volumen znotraj kontejnerja na /app/data.

Rezultat

Podatki, zapisani na /app/data, ostanejo tudi, če je kontejner odstranjen.

Ključne značilnosti volumov

  • Upravlja jih Docker
  • Shranjeni v notranjih direktorijih Dockerja, kot je /var/lib/docker/volumes/
  • Enostavni za varnostno kopiranje in migracijo
  • Izolirani od strukture datotečnega sistema gostitelja

Tip

Uporabite volumne za baze podatkov in produkcijske delovne obremenitve.

Korak 3: Ustvarjanje in uporaba Bind Mounts

Bind mounts povežejo določeno mapo na gostitelju z mapo znotraj kontejnerja.

Uporabite bind mount

Zaženite naslednji ukaz:

docker run -d -v /home/<YOUR_USERNAME>/data:/app/data --name bind_test busybox

Rezultat

Kontejner neposredno dostopa do mape gostitelja. Vse spremembe v mapi gostitelja so takoj vidne znotraj kontejnerja.

Ključne značilnosti bind mounts

  • Odvisni od poti datotečnega sistema gostitelja
  • Omogočajo neposredno urejanje datotek z gostitelja
  • Brez izolacije, ki jo upravlja Docker
  • Bolj prilagodljivi, vendar manj prenosljivi

Info

Bind mounts takoj odražajo spremembe med gostiteljem in kontejnerjem.

Korak 4: Primerjava Volumes in Bind Mounts

Razumevanje razlik vam pomaga izbrati pravo možnost.

Docker Volumes

  • Upravlja jih Docker
  • Prenosljivi med okolji
  • Varnejši za uporabo v produkciji
  • Lažji za varnostno kopiranje
  • Abstrahirani od datotečnega sistema gostitelja

Bind Mounts

  • Upravlja jih gostitelj
  • Povezani s specifičnimi potmi datotečnega sistema
  • Uporabni za razvoj
  • Omogočajo neposreden dostop do datotek
  • Manj varni, če so napačno konfigurirani

Korak 5: Izbira med Volumes in Bind Mounts v produkciji

Uporabite naslednje smernice.

Kdaj uporabiti Docker Volumes

  • Zaženete baze podatkov, kot sta MySQL ali PostgreSQL
  • Shranjujete podatke aplikacij, ki morajo ostati
  • Razporejate produkcijske storitve
  • Potreba po prenosljivosti med strežniki

Kdaj uporabiti Bind Mounts

  • Lokalna razvojna okolja
  • Urejanje kode ali konfiguracijskih datotek neposredno
  • Odpravljanje napak v vedenju kontejnerja
  • Začasne ali testne nastavitve

Info

Pomembno: Bind mounts lahko izpostavijo občutljive datoteke gostitelja kontejnerjem, če so napačno konfigurirani. Vedno preverite poti in dovoljenja.

Preverjanje in testiranje

Ustvarite testni kontejner z volumnom:

docker run -it -v my_volume:/data --name playground busybox

Znotraj kontejnerja ustvarite datoteko:

echo test > /data/file.txt

Izhod iz kontejnerja in ga odstranite:

docker rm -f playground

Zaženite nov kontejner z istim volumnom:

docker run -it -v my_volume:/data --name playground busybox

Preverite datoteko:

cat /data/file.txt

Pričakovani rezultat: Datoteka še vedno obstaja, kar potrjuje obstojnost podatkov.

Vračanje sprememb

Za čiščenje virov zaženite naslednje ukaze:

docker rm -f playground volume_test bind_test

docker volume rm my_volume

docker system prune -f

Info

Pomembno: Odstranjevanje volumov trajno izbriše vse shranjene podatke.

Odpravljanje težav

  • Težava: Podatki izginejo po ponovnem zagonu kontejnerja
    Vzrok: Ni uporabljen volumen ali bind mount
    Rešitev: Priključite trajno shranjevanje z uporabo volumov ali bind mounts
  • Težava: Napake pri zavrnitvi dovoljenja
    Vzrok: Neskladje dovoljenj mape gostitelja
    Rešitev: Prilagodite dovoljenja z uporabo chmod ali chown
  • Težava: Volumen se ne namesti pravilno
    Vzrok: Napačna pot ali sintaksa
    Rešitev: Preverite format montaže in poti

Zaključek in naslednji koraki

Naučili ste se, kako deluje Docker shranjevanje in kako ohraniti podatke z uporabo volumov in bind mounts. Prav tako razumete, kdaj uporabiti vsak pristop v produkciji. Naslednji korak je raziskovanje Docker Compose za upravljanje aplikacij z več kontejnerji in definiranje shranjevanja na bolj strukturiran način.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA