Sobes.tech
Junior

Č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.