Если встречается ситуация когда места на диске перестаёт хватать или оно куда-то девается, а контейнеров куча, то на помощь придёт переустановка системы. Шутка.
На самом деле докер по-умолчанию не имеет ограничения на размер логов и чтобы ограничить их бесконтрольное разрастание можно пойти двумя путями:
Через команду запуска контейнера
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
Все хорошо, спасибо за статью!
Два ньюанса:
При перезапуске ругается на символ «#», он не является комментарием в json
После пары ключ-значение «max-file»: «5». нужно добавить запятую
Спасибо за замечание. Поправил и добавил комментарии