PassFront
  1. PassFront
  2. База знаний
  3. Контейнеры, volumes и сети

В чём разница между volume и bind mount?

Контейнеры, volumes и сети

Оба подключают хранилище к контейнеру, чтобы данные пережили его удаление, но управляются по-разному.

Volume

Хранилище, которым управляет Docker (на Linux в /var/lib/docker/volumes).

docker volume create pgdata
docker run -v pgdata:/var/lib/postgresql/data postgres:16
  • Не зависит от структуры папок хоста, переносится между контейнерами.
  • Лучший выбор для данных приложений: базы, загрузки.
  • Удобно делать резервные копии и использовать драйверы хранилищ.

Bind mount

Прямое подключение папки хоста.

docker run -v "$(pwd)/src:/app/src" myapp
  • Изменения на хосте видны в контейнере сразу, поэтому подходит для разработки (горячая перезагрузка).
  • Зависит от путей и прав на конкретной машине.

tmpfs

Хранит данные в оперативной памяти и стирает при остановке: для временных и чувствительных данных.

Коротко для собеседования

Volume — управляемое Docker хранилище для данных, bind mount — папка хоста для разработки, tmpfs — временная память.

Другие вопросы раздела