vault backup: 2026-04-20 22:55:39
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
# 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": "<username>"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
**Source:** [[Volume - Docker|Volume - Docker]]
|
||||
Reference in New Issue
Block a user