Именованный том в Docker
Именованный том хранит файлы у службы под выбранным именем, а не в папке проекта. Том живёт отдельно от записи о контейнере: удалили копию - данные в томе остаются, пока том не удалят.
Имя задают до запуска командой
создания, затем подключают
его слева в паре для флага
-v, а справа указывают
папку внутри контейнера.
Служба сама кладёт файлы
в своё хранилище на диске.
Создадим том box
и подключим его к контейнеру
keeper в точку /data.
Сначала появится запись
хранилища с именем box:
docker volume create box
Контейнер из alpine
будет ждать в фоне, пока
мы проверим запись:
docker run -d --name keeper -v box:/data alpine sleep 300
Внутри keeper положим
файл с одним словом в том:
docker exec keeper sh -c "echo saved > /data/note.txt"
Остановим keeper
и уберём его запись, сам том
box при этом останется:
docker stop keeper
Запись о контейнере можно убрать отдельной командой:
docker rm keeper
Новый контейнер next
с тем же томом должен показать
сохранённое слово saved.
Сначала запуск:
docker run -d --name next -v box:/data alpine sleep 300
Содержимое файла в томе
можно прочитать из next:
docker exec next cat /data/note.txt
Создайте том с именем shelf и запишите в него слово kept из контейнера.
Удалите контейнер, запустите новый с тем же томом и убедитесь, что слово kept на месте.