# Docker — Volumes (one-screen) ## 1) Зачем Данные контейнера по умолчанию **неперсистентны** (контейнер удалили — данные исчезли). Поэтому “живущие” данные (БД, логи, конфиги, артефакты) выносят во **volumes**. По умолчанию Docker volumes лежат в: `/var/lib/docker/volumes/` ## 2) Варианты подключения ### Host bind-mount Монтируем конкретный путь хоста: ```bash docker run -v /host/data:/var/lib/mysql/data ... ``` Плюс — прозрачно. Минус — завязка на конкретный путь/права. ### Anonymous volume ```bash docker run -v /var/lib/mysql/data ... ``` Docker сам создаст volume в дефолтной директории. ### Named volume ```bash docker run -v mydb:/var/lib/mysql/data ... ``` Как anonymous, но есть имя, можно переиспользовать. ## 3) Права доступа (важно) Права/владелец в смонтированном каталоге зависят от **uid/gid** внутри контейнера. Чтобы не монтировать всё от root, можно использовать **userns-remap** (маппинг uid/gid контейнера → другие uid/gid на хосте). Настраивается в `/etc/docker/daemon.json`: ```json { "userns-remap": "" } ``` --- **Source:** [[Volume - Docker|Volume - Docker]]