
Docker Fundamentals: хранение данных в Docker
opensophy 14 минут назад Docker Fundamentals: хранение данных в Docker Простой 18 мин 615 Блог компании RUVDS.com IT-инфраструктура * Open source * Веб-разработка * Управление продуктом * Туториал ВведениеКонтейнеры в...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Значимый прорыв формирует отрасль ИИ: opensophy 14 минут назад Docker Fundamentals: хранение данных в Docker Простой 18 мин 615 Блог компании RUVDS. com IT-инфраструктура * Open source * Веб-разработка * Управление продуктом * Туториал ВведениеКонтейнеры в Docker изначально не предназначены для постоянного хранения данных. Если удалить контейнер, всё, что было записано внутрь него, исчезнет вместе с ним.
Поэтому для баз данных, пользовательских файлов и других важных данных используют отдельные механизмы хранения. В этой статье разберём, какие способы хранения данных есть в Docker, чем они отличаются, и в каких случаях стоит использовать каждый из них. Типы хранилищТипКем управляетсяГде живётКогда использоватьТом (volume)Docker/var/lib/docker/volumes/<имя>/_dataПродакшен, БД, всё, что нельзя терятьПодключение хост-каталога (bind mount)Вы (хост)Любая папка на хостеРазработка, конфиги, сокеты (ну или другие специфические задачи в зависимости от проекта)Временная ФС в памяти (tmpfs)Ядро (RAM)Оперативная памятьСекреты, кэш, временные файлыЕсть ещё именованный канал (named pipe) он же windows-механизм для связки хост-контейнер, например, для доступа к Docker Engine API изнутри контейнера.
Технические детали
Не используется как способ хранения данных. Тома (Volumes)Тома — это хранилища данных, которыми управляет Docker. На Linux лежат в /var/lib/docker/volumes/<имя>/_data, но трогать их напрямую не стоит — Docker не гарантирует, что в этом случае всё продолжит нормально работать — это непредусмотренный и неподдерживаемый сценарий.
Тома часто используют для БД из-за производительности — они лучше подходят для большого числа операций записи, чем слой для записи (writable layer) контейнера. Также том не увеличивает размер контейнера, все данные, записанные в том, не попадают в writable layer и не учитываются в docker ps --size. docker system df покажет тома отдельной строкой.
Тома работают на Linux и Windows контейнерах. 1 Жизненный цикл томаСобытиеЧто происходитКонтейнер удалён/удаляетсяТом остаётсяКонтейнер пересозданВидит те же данныеТом пустой, в образе уже есть файлыDocker копирует файлы из образа в томТом не пустойКонтейнер видит данные тома (при этом содержимое образа скрыто)Удалить том можно командой docker volume rm (docker volume rm VOLUME ). Основные команды для работы с томами:КомандаЧто делаетdocker volume createСоздать томdocker volume lsСписок томовdocker volume inspectИнформация о томеdocker volume rmУдалить том (не получится, если используется хоть одним контейнером, даже остановленным)docker volume pruneУдалить все неиспользуемые томаdocker system dfСводка по месту на диске (тома, образы, слои сразу)2.
Отраслевые последствия
2 ВопросыОткуда берётся автосоздание тома? Разберу на примере с postgres. Помните строку из таблицы выше: том пустой, в образе уже есть файлы, значит, Docker копирует их в том?
Именно это поведение сработает, если запустить образ postgres без явного тома. Контейнер всё равно создаст себе анонимный том сам, и данные базы окажутся именно там, а не в слое для записи.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





