Docker volumes i bind mounts – jak zachować dane lokalnie?

Kontenery Dockerowe potrafią przechowywać dane – można wprowadzić zmiany w kontenerze, wyłączyć go i ponownie włączyć, i zobaczymy że zmiany dalej tam są:

docker run -it ubuntu bash
touch text.txt
ls 
docker stop your_container_name
docker start -ai your_container_name
ls

Wszystko fajnie, ale jeśli usuniemy kontener no to wszystko zostanie usunięte. Czasami nie jest to problemem, ale jeśli jest, to są na to dwa rozwiązania – Volumes oraz Bind mounts.

Volumes – zaufaj silnikowi Dockera (gdzieś Ci to przetrzyma)

Używanie wolumenów (volumes) polega na zleceniu silnikowi Dockera trzymania danych z jakiegoś katalogu kontenera w danym wolumenie. Nie wiemy gdzie to jest trzymane, ale wiemy pod jaką nazwą wolumenu:

docker run -it -v volume_name:/test ubuntu bash
cd test
touch test.txt
docker stop your_container_name
docker rm your_container_name

docker run -it -v volume_name:/test ubuntu bash
cd test
ls

Bind mounts – nie ufaj silnikowi Dockera (przechowuj to u siebie)

Używanie Bind mounts polega na wydelegowaniu katalogu na naszej lokalnej maszynie dla konkretnej ścieżki w kontenerze. Wszystkie dane są trzymane w podanym katalogu lokalnym (można je podejrzeć):

docker run -it -v C:\test_bind_mounts:/test ubuntu bash
cd test
touch test.txt
docker stop your_container_name
docker rm your_container_name

Pozostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *