Ограничение размера логов Docker

Если встречается ситуация когда места на диске перестаёт хватать или оно куда-то девается, а контейнеров куча, то на помощь придёт переустановка системы. Шутка.

На самом деле докер по-умолчанию не имеет ограничения на размер логов и чтобы ограничить их бесконтрольное разрастание можно пойти двумя путями:

Через команду запуска контейнера

docker run --log-opt max-size=1k --log-opt max-file=5 ...

Через compose-файл

services:
  app:
    container_name: app
    image: node
    ... 
    logging:
      driver: "json-file"
      options:
        max-file: "5"   # количество файлов
        max-size: "10m" # размер файла лога

Через системные настройки

В файле /etc/docker/daemon.json вписать следующее: (по-умолчанию в системе его нет)

Внимание: не забудьте удалить комментарии из daemon.json

Содержимое:

{
  "live-restore": true, # параметр не сильно обязателен
  "storage-driver": "overlay2", # ещё один метод хранения логов
  "log-opts": {
    "max-file": "5",  # количество файлов
    "max-size": "10m" # само ограничение на размер логов
  }
}

После перезапустить сервис

systemctl restart docker
Подписаться
Уведомить о
guest

2 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Антон
Антон
6 месяцев назад

Все хорошо, спасибо за статью!
Два ньюанса:
При перезапуске ругается на символ «#», он не является комментарием в json
После пары ключ-значение «max-file»: «5». нужно добавить запятую