Čo sa stane so súborom vytvoreným v Docker kontejnere po jeho zastavení?
sobes.tech AI
Odpoveď od AI
Súbor vytvorený vo vnútri kontajnera Docker bude uložený na vrstve zápisu súborového systému kontajnera. Pri zastavení kontajnera sa táto vrstva zápisu neodstráni, takže údaje zostávajú zachované.
Avšak pri odstránení kontajnera (docker rm) budú všetky vrstvy, vrátane vrstvy zápisu, tiež odstránené a súbor bude stratený.
Na dlhodobé a nezávislé uchovávanie údajov vytvorených vo vnútri kontajnera sa používajú:
-
Volumes (Objemové úložiská): Odporúčaná metóda. Docker spravuje životný cyklus objemov. Údaje sa ukladajú mimo kontajnera, často v špeciálnom adresári na hostiteľskom systéme, izolovanom od súborového systému samotného kontajnera.
// Vytvorenie objemu docker volume create mydata // Spustenie kontajnera s pripojeným objemom docker run -d --name mycontainer -v mydata:/app/data myimage -
Bind Mounts (Pripojené montáže): Pripojujú adresár na hostiteľskom systéme k adresáru vo vnútri kontajnera. Toto je užitočné pre vývoj, keď je potrebný priamejší prístup k súborom na hostiteľovi (napríklad zdrojový kód). Docker spravuje súbory na hostiteľovi iba nepriamo.
// Spustenie kontajnera s pripojeným adresárom na hostiteľovi docker run -d --name mycontainer -v /path/on/host:/app/data myimage
Týmto spôsobom, ak je súbor vytvorený bez použitia objemov alebo pripojených montáží, zmizne po odstránení kontajnera, ale nie po jeho zastavení. Pri použití objemov alebo pripojených montáží sa údaje zachovávajú nezávisle od stavu alebo existencie kontajnera.