ℹ️ Docker-контейнеры могут генерировать огромные логи, что приводит к проблемам с дисковым пространством, особенно в продуктивных окружениях. Однако есть способ гибко управлять логами контейнеров, используя драйверы логирования и фильтрацию на основе уровня критичности событий.
🔥 Как это сделать:
-
📁 1. Выберите драйвер логирования:
Docker по умолчанию использует драйвер json-file, который сохраняет логи в виде JSON на диск. Это удобно, но можно оптимизировать.
Например, если у вас настроен сбор логов через Fluentd, вы можете использовать соответствующий драйвер:
docker run --log-driver=fluentd --log-opt tag="my-app" my-app-image -
📑 2. Ограничьте размер логов:
Даже если вы используете json-file, можно ограничить размер файлов логов и количество ротаций:
docker run --log-opt max-size=10m --log-opt max-file=3 my-app-imageℹ️ Это ограничит логи до
10 MBна файл и сохраняет до3архивных копий. -
➡️ 3. Используйте logspout для маршрутизации логов:
Для более сложных сценариев маршрутизации логов можно подключить контейнер
logspout, который отправляет логи Docker в различные системы мониторинга или хранилища логов.Пример для отправки логов в
syslog:docker run --name="logspout" \ --volume=/var/run/docker.sock:/var/run/docker.sock \ gliderlabs/logspout syslog://syslog-server:514
✳️ Эти методы помогают управлять объемом логов в Docker, снижая нагрузку на хранилище и делая логирование более управляемым.
tags: #полезно #docker #логирование
🧭 @recura_tech



