Mis vahe on mahu (volume) ja lihtsal sidumisel (binding) hosti kataloogiga?
sobes.tech AI
Vastus AI-lt
-
Kogumid (Volumes): Kogumi elutsükkel on eraldatud konteineri elutsüklist. Docker haldab kogumite salvestamist host-masinal. Kogumid luuakse, ühendatakse ja kustutatakse Dockeri poolt ning nende andmed säilivad isegi pärast konteineri peatamist või kustutamist. Need sobivad ideaalselt püsivate andmete salvestamiseks, andmebaaside või jagatud andmete jaoks konteinerite vahel.
-
Otseühendus hosti kataloogiga (Bind Mounts): otse ühendab hosti masina kataloogi või faili konteineri sees oleva kataloogi või failiga. Docker ei halda otse andmete salvestamist, vaid loob ainult ühenduspunkti. Muutused konteineri failisüsteemis selles punktis kajastuvad hostil ja vastupidi. Neid on mugav kasutada:
- Arenduseks: lähtekoodi ühendamine konteinerisse, et muudatused oleksid koheselt nähtavad.
- Konfiguratsiooniks: konfiguratsioonifailide edastamine hostilt konteinerisse.
- Juurdepääs hosti ressurssidele: võimaldada konteineril pääseda teatud failidele või kataloogidele hostil.
Peamised erinevused:
| Omadus | Kogum (Volume) | Hostiga ühendus (Bind Mount) |
|---|---|---|
| Halduse | Docker haldab täielikult salvestamist | Docker loob ainult ühenduspunkti |
| Elutsükkel | Eraldatud konteinerist | Seotud hosti kataloogi või faili olemasoluga |
| Jõudlus | Tihti optimeeritud I/O jaoks | sõltub hosti failisüsteemi jõudlusest |
| Kandekus | Rohkem kandekas Dockerfile/Compose kaudu | Vähem kandekas, sõltub hosti struktuurist |
| Izolatsioon | Pakub paremat isolatsiooni hostist | Vähem isolatsiooniga hosti failisüsteemist |
Näide kogumi kasutamisest Dockerfile'is:
# Kogumi kasutamine
VOLUME /app/data
Näide kogumi kasutamisest konteineri käivitamisel:
# Kataloogi ühendamine
docker run -v /path/on/host:/path/in/container my_image
Näide kogumi kasutamisest konteineri käivitamisel:
# Nimetatud kogumi kasutamine
docker run -v myvolume:/path/in/container my_image