# Очистка дискового пространства Docker

## Очистка дискового пространства Docker (хосты)

Данные Docker со временем растут на хост-машинах.\
После завершения аренды остаются остановленные контейнеры, неиспользуемые образы, тома и кэш сборки.\
Если не очищать это, корневой диск заполняется и развёртывания начинают падать.

{% hint style="info" %}
Выполняйте очистку только когда сервер **не арендуется** и вам не нужны данные старых контейнеров.\
Если вы не уверены, остановитесь и сначала проверьте использование диска.
{% endhint %}

***

## 1) Проверка использования диска

### Дисковое пространство на уровне ОС (`df -h`)

Показывает свободное место на каждой смонтированной файловой системе.

```bash
df -h
```

Вам в основном важно `/` (root) и раздел, в котором хранится `/var/lib/docker`.

### Использование диска на уровне Docker (`docker system df`)

Показывает, что хранит Docker и сколько можно освободить.

```bash
docker system df
```

Если вы хотите больше подробностей по образу/контейнеру:

```bash
docker system df -v
```

***

## 2) Полная очистка (рекомендуется)

Это команда «сбросить остатки Docker после предыдущих аренд».\
Она удаляет неиспользуемые контейнеры, образы, сети и **неиспользуемые тома**.

```bash
docker system prune -a --volumes
```

{% hint style="warning" %}
`-a` удаляет **все неиспользуемые образы**, а не только «висящие».\
Это включает кэшированные образы, которые могли бы пригодиться для более быстрых будущих развёртываний.
{% endhint %}

***

## 3) Индивидуальные команды очистки (больше контроля)

Используйте их, когда хотите очистить конкретную категорию.\
Они безопаснее для поэтапного обслуживания.

### Контейнеры (только остановленные)

```bash
docker container prune
```

### Образы (неиспользуемые)

Удалить только висящие слои:

```bash
docker image prune
```

Удалить все неиспользуемые образы (тот же риск, что и `system prune -a`):

```bash
docker image prune -a
```

### Тома (неиспользуемые)

```bash
docker volume prune
```

### Сети (неиспользуемые)

```bash
docker network prune
```

***

## 4) Лучшие практики по обслуживанию хоста

1. Очищайте **между арендой** или во время запланированных простоев.
2. Соблюдайте запас безопасности.\
   Стремитесь к **10–20 ГБ** свободного места на корневом диске в любое время.
3. Регулярно проверяйте использование Docker:
   * `df -h`
   * `docker system df`
4. Предпочитайте сначала поэтапную очистку:
   * `docker container prune`
   * `docker image prune`
   * `docker volume prune`
5. Используйте полную очистку только при необходимости:
   * `docker system prune -a --volumes`
6. Если использование диска продолжает быстро расти, исследуйте:
   * Большие тома, создаваемые арендаторами.
   * Логи в `/var/lib/docker/containers/*/*.log`.
   * Кэш сборки от частых пересборок образов.
