Sobes.tech
Junior

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