me_edu
Docker для разработчиковШаг 19 из 27 · 0% пройдено
Тома и сети · Тома и сети

Тома (volumes): хранение данных

Шаг 19 из 276 минТеория
Цель

Понять основной механизм темы «Тома (volumes): хранение данных» без заучивания отдельных терминов.

Как работать

Прочитайте блок один раз целиком, затем вернитесь к схеме или примеру и перескажите идею своими словами.

Критерий

Сформулированное правило, пример применения и одно ограничение метода.

Опорная идея

Контейнеры по своей природе временны: удалили контейнер — пропали и все данные внутри него. Для базы данных это недопустимо. Решение — тома (volumes), которые хранят данные вне контейнера и переживают его пересоздание.

Именованный том создаётся и подключается флагом -v:

docker run -d --name db \ -v pgdata:/var/lib/postgresql/data \ postgres

Здесь том pgdata подключён к папке внутри контейнера, где Postgres хранит базу. Теперь данные сохранятся, даже если контейнер удалить и создать заново.

Есть и другой вид — bind mount: подключить папку с хоста прямо в контейнер. Это удобно при разработке, чтобы контейнер видел изменения кода сразу:

docker run -v $(pwd):/app myapp

Команды для томов: docker volume ls (список), docker volume create name, docker volume rm name. Правило: всё, что должно пережить контейнер (базы, загруженные файлы), храните в томах.

Назад

Обсуждение

Войдите, чтобы участвовать в обсуждении.

Пока нет сообщений.