[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-docker-chto-takoe-toma-volumes-i-bind-mounts":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":18,"progress":19,"seo":20},713,"chto-takoe-toma-volumes-i-bind-mounts",17,"docker","Docker","🐳","Что такое тома (volumes) и bind mounts?","Тома и bind mounts — это механизмы Docker для сохранения данных вне жизненного цикла контейнера, поскольку контейнеры по своей природе эфемерны и при удалении все данные внутри теряются.\n\n### Тома (Volumes)\n\nУправляемые Docker хранилища данных, расположенные в файловой системе хоста (`\u002Fvar\u002Flib\u002Fdocker\u002Fvolumes\u002F`):\n\n```bash\n# Создать и использовать именованный том\ndocker run -v postgres-data:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata postgres:16\n\n# Создать том отдельно\ndocker volume create my-volume\ndocker volume ls\ndocker volume inspect my-volume\ndocker volume rm my-volume\n```\n\n### Bind mounts\n\nМонтирование конкретной директории или файла хоста в контейнер:\n\n```bash\n# Монтирование директории хоста\ndocker run -v \u002Fpath\u002Fon\u002Fhost:\u002Fpath\u002Fin\u002Fcontainer myapp\n\n# Монтирование файла конфигурации\ndocker run -v .\u002Fapplication.yml:\u002Fapp\u002Fconfig\u002Fapplication.yml myapp\n```\n\n### Сравнение\n\n| Характеристика | Volumes | Bind mounts |\n|---|---|---|\n| Управление | Docker управляет расположением | Пользователь указывает точный путь |\n| Расположение | `\u002Fvar\u002Flib\u002Fdocker\u002Fvolumes\u002F` | Любая директория хоста |\n| Портативность | Высокая (не зависит от файловой системы хоста) | Низкая (привязка к структуре хоста) |\n| Использование | Данные БД, постоянное хранение | Конфиги, исходный код при разработке |\n| Backup | Проще через Docker CLI | Обычными средствами ОС |\n| Права доступа | Docker контролирует | Зависят от прав на хосте |\n\n### Типичные сценарии для Java-разработчика\n\n- Volume — данные PostgreSQL, данные Elasticsearch, кэш Maven\u002FGradle\n- Bind mount — `application.yml` при разработке, исходный код для hot-reload\n\n### tmpfs\n\nТретий вид монтирования. Данные хранятся только в оперативной памяти хоста и не записываются на диск. Подходит для временных конфиденциальных данных:\n\n```bash\ndocker run --tmpfs \u002Fapp\u002Ftmp myapp\n```\n\n> **На собеседовании:** объясните разницу: volumes управляются Docker и подходят для данных БД, bind mounts — для монтирования конфигов и исходного кода при разработке. Упомяните tmpfs как третий вариант для конфиденциальных временных данных. Частая ошибка — путать volumes и bind mounts.","","middle",[15,16,17,7],"volume","bind-mount","data-persistence",[],null,{"title":21,"description":22,"ogTitle":23,"ogDescription":24,"keywords":25,"schemaAnswer":34,"featuredSnippetReady":35},"Docker Volumes vs Bind Mounts — Gymterview","Тома (volumes) и bind mounts в Docker: управление данными, сравнительная таблица, tmpfs. Когда использовать volumes (данные БД) и bind mounts (конфиги).","Docker Volumes vs Bind Mounts: сравнение и применение — Gymterview","Volumes управляются Docker (данные БД), bind mounts монтируют директории хоста (конфиги). Сравнение, tmpfs и примеры.",[26,27,28,29,30,31,32,33],"Docker volumes","bind mounts","тома Docker","данные контейнера","tmpfs","персистентность данных","docker volume create","собеседование","Механизмы сохранения данных вне жизненного цикла контейнера. Volumes — управляемые Docker хранилища в \u002Fvar\u002Flib\u002Fdocker\u002Fvolumes\u002F, портативные, подходят для данных БД. Bind mounts — монтирование конкретной директории хоста, подходят для конфигов и исходного кода при разработке. tmpfs — хранение только в RAM, для временных конфиденциальных данных. При удалении контейнера данные в volumes сохраняются, в writable layer — теряются.",true]