Ротация логов через logrotate в Docker

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

logrotatedockerротация логов

ℹ️ В процессе работы с Docker-контейнерами часто возникает проблема с ростом объема логов, особенно если контейнеры генерируют много данных. Вместо того чтобы полагаться на сторонние инструменты мониторинга, вы можете использовать встроенный инструмент — logrotate — для автоматической ротации логов внутри контейнеров.

📑 1. Создайте файл конфигурации logrotate внутри контейнера:

# /etc/logrotate.d/docker_logs

/var/log/myapp/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    copytruncate
}

ℹ️ Пояснение к конфигурации:

  • - daily — означает ежедневную ротацию логов.
  • - rotate 7 — хранить 7 архивных копий логов.
  • - compress — сжимать старые логи для экономии места.
  • - copytruncate — обрезать файл логов, не прерывая работу приложения.

👨‍💻 2. Запустите logrotate через cron или в Dockerfile

Добавьте это в Dockerfile, чтобы настроить запуск logrotate по расписанию:

RUN apt-get update && apt-get install -y logrotate
COPY logrotate.conf /etc/logrotate.d/docker_logs

CMD ["cron", "-f"]

✳️ Этот лайфхак особенно полезен для IT-специалистов, которые хотят иметь простой и надежный способ управления логами без перегрузки инфраструктуры лишними инструментами.

tags: #полезно #docker #логирование

🧭 @recura_tech

Иллюстрация: логотип Docker в виде кита в центре, окружённый контейнерами и стрелками, символизирующая ротацию, архивацию и перемещение логов между контейнерами и хранилищем.
Схема: контейнеры, стрелки и архивы вокруг Docker-иконки — визуализация ротации и архивирования логов.

Читайте так же