Перейти к содержимому
RunStack
АвтоматизацияСкрипты· Обновлено 19 окт. 2026 г.

Чистка Docker — rs clean

Скрипт показывает, что занимает место в Docker — образы, кеш сборки, остановленные контейнеры, логи без лимита — и по шагам чистит с вашего согласия. Тома с данными не трогает.

UbuntuUbuntuDebianDebian
Ubuntu 22.04 / 24.04 · Debian 12+
10

Диск внезапно заполнен, а данных вроде немного. Обычно виноват Docker: старые образы после обновлений, кеш сборки и особенно логи контейнеров — по умолчанию они растут без ограничения, пока не кончится место.

rs clean показывает, что сколько занимает, предлагает безопасную чистку по шагам и ставит лимит на логи, чтобы проблема не вернулась.

Что показывает

  • Сколько занимает Docker: образы, контейнеры, тома, кеш сборки и сколько из этого можно освободить.
  • Логи контейнеров: самые большие и у каких нет лимита размера.
  • Лимит по умолчанию в /etc/docker/daemon.json — есть ли он; предложит добавить max-size 10m × 3.
  • Что можно убрать: висячие и неиспользуемые образы, остановленные контейнеры, кеш сборки; неиспользуемые тома — только показывает.
  • Системный журнал (journald), если он разросся.

Как выглядит

==> Логи контейнеров
      api                         3.8GB  json-file
    ! Логи без ограничения размера: api worker
==> Чистка
    Удалить висячие образы (старые слои без тега)? [Y/n] y
    ✓ Висячие образы удалены
    Обнулить логи больше 100 МБ (api)? [y/N] y
    ✓ Лог обнулён: api
    Задать лимит логов по умолчанию в /etc/docker/daemon.json (10m × 3)? [Y/n] y
    ✓ Освобождено: 9.1GB

В конце — итог: что исправить в первую очередь и чем. Полная копия отчёта без цветов — в /tmp/rs-clean.txt, её удобно приложить к обращению.

Как запустить

  1. Скопируйте команду из блока «Скачать» — он появится после входа. В команде ваш личный токен, он действует 12 часов.
  2. Выполните её на сервере. Скрипт скачается, проверит контрольную сумму и сразу запустится.
  3. Дальше — просто sudo rs clean. Команда rs остаётся на сервере вместе с остальными скриптами: rs info, rs slow, rs security, rs clean. Подсказка — rs help.
rs clean             отчёт, затем вопрос на каждый шаг
rs clean --report    только отчёт, ничего не удаляется
rs clean --yes       без вопросов: только безопасные шаги (висячие образы, кеш сборки)

Безопасно ли это

Скрипт сначала только показывает, что занимает место, и ничего не удаляет без вашего «да» на каждый шаг. Тома с данными, контейнеры сервисов RunStack и работающие контейнеры он не трогает никогда. Исходный код открыт для чтения в /opt/runstack/automations/tools/clean/tool.sh. Удалить сам RunStack: sudo rs remove.

Требования

  • Linux с bash и curl, права root (sudo). Проверяем на Ubuntu 22.04 / 24.04 и Debian 12+, на других дистрибутивах тоже работает — пропуская то, чего там нет.
  • Docker не обязателен: без него раздел про контейнеры просто пропускается.

Вопросы

Сколько стоит? Сейчас бесплатно.

Не удалит ли он нужное? Тома (там лежат базы и файлы приложений) скрипт не удаляет никогда, контейнеры сервисов RunStack и работающие контейнеры — тоже. Образы удаляются только неиспользуемые: если понадобятся, Docker скачает их снова.

Почему лимит логов действует не сразу? Настройка в daemon.json применяется после перезапуска Docker и только к новым или пересозданным контейнерам. У сервисов RunStack лимит логов задан в их compose-файлах изначально.

Что значит каждая проверка и как исправить находки — в вики.

Материалы доступны после входа и подтверждения email.