Перейти к основному контенту

Глава 2.4: Шпаргалка по управлению и очистка диска.

Теперь, когда наш стек успешно настроен и запущен, пришло время научиться управлять им в повседневной жизни. Вам не нужно заучивать сотни флагов: для 99% ежедневных задач домашнего сисадмина достаточно всего пяти команд Docker Compose и одной команды для генеральной уборки диска.


1. Ежедневные команды управления (Шпаргалка)

Важное правило: Все команды docker compose ... нужно выполнять, строго находясь в папке с вашим проектом (там, где лежит нужный docker-compose.yml). Например, перед вводом команд для нашей Wiki сначала перейдите в её директорию: cd /stacks/bookstack.

  • Запуск и обновление стека:
    docker compose up -d
    Что делает: Запускает контейнеры в фоновом режиме. Если вы изменили что-то в файле docker-compose.yml или .env, эта же команда применит изменения на лету и бесшовно перезапустит только то, что изменилось.
  • Остановка без удаления данных:
    docker compose stop
    Что делает: Просто "ставит на паузу" контейнеры. Приложение засыпает, ресурсы процессора и оперативной памяти освобождаются. Файлы на диске и настройки не трогаются.
  • Запуск остановленного стека:
    docker compose start
    Что делает: Пробуждает контейнеры, остановленные предыдущей командой stop.
  • Полное уничтожение стека:
    docker compose down
    Что делает: Полностью останавливает и удаляет контейнеры из системы, а также уничтожает их внутренние виртуальные сети. При этом ваши данные (базы данных, картинки, статьи) остаются в безопасности на жестком диске сервера, так как мы бережно прописали их в Volumes / Bind Mounts.
  • Чтение логов (Диагностика):
    docker compose logs -f --tail=100
    Что делает: Самая важная команда, если сайт выдает ошибку. Флаг --tail=100 показывает последние 100 строк логов, а флаг -f (follow) заставляет консоль застыть и выводить новые события приложения в реальном времени. Чтобы выйти из режима просмотра логов, нажмите Ctrl+C.

2. Борьба за дисковое пространство: Очистка мусора

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

Когда разработчики обновляют образы, вы скачиваете их новые версии, а старые "зависают" на вашем диске мертвым грузом в виде "осиротевших" (dangling) слоев. За полгода таких экспериментов на диске может скопиться от 10 до 30 гигабайт цифрового мусора.

Чтобы вернуть серверу свободное пространство, существует ультимативная команда генеральной уборки. Её можно выполнять из абсолютно любой папки на сервере:

docker system prune -a --volumes

Разбор флагов очистки:

  • -a (all) — заставляет Docker удалить не только промежуточные слои, но и вообще все неиспользуемые образы (те образы, из которых прямо сейчас не запущен ни один контейнер).
  • --volumes — критически важный флаг. Он удаляет "сиротские" тома данных (Volumes), которые когда-то были созданы старыми контейнерами, но теперь заброшены и не используются.

⚠️ Внимание! Техника безопасности:
Перед запуском docker system prune -a --volumes всегда убедитесь, что все ваши нужные контейнеры запущены и работают (проверить можно командой docker ps). Если вы сначала сделаете docker compose down для какого-то проекта, а потом запустите очистку, Docker посчитает этот проект неиспользуемым и безжалостно сотрет его скачанные образы и не привязанные жестко тома!


3. Быстрый просмотр занятого места

Чтобы узнать, сколько конкретно мегабайт или гигабайт сейчас занимают контейнеры, образы и тома на диске, введите команду:

docker system df

Она выведет удобную табличку с детализацией и покажет процент пространства, которое можно безболезненно вернуть системе.

🎉 Раздел 2 полностью завершен!
Теперь вы полноценный практик. Вы умеете разворачивать сложные связки сервисов через Compose, управлять переменными в `.env`, распределять права на диске, изолировать сети и держать сервер в идеальной чистоте.

Мы готовы двигаться дальше. Впереди Раздел 3, где мы превратим наш сервер в полноценную управляемую экосистему: добавим красивую веб-панель Portainer, удобный просмотр логов через браузер, автоматическое обновление по ночам и надежные бэкапы.