журнал докеров занимает слишком много места

машинное обучение

причина

Недавно я обнаружил, что места на сервере всегда не хватает.После того, как я отдал все ресурсы exsi на виртуальную машину сервера, диск снова был заполнен всего за одну неделю.

Поиск больших файлов, больших каталогов

Из корневого каталога используйте

du -h --max-depth=1

Ищите большие каталоги и большие файлы слой за слоем и, наконец, найдите каталог /var/lib/docker/containers/, который занимает 44G. Проверьте и обнаружите, что файл журнала контейнера слишком велик.

Скрипт для просмотра размера журнала контейнера докеров

#!/bin/sh 
echo "======== docker containers logs file size ========"  

logs=$(find /var/lib/docker/containers/ -name *-json.log)  

for log in $logs  
    do  
        ls -lh $log
    done
chmod +x docker_log_size.sh

./docker_log_size.sh

Ограничить размер журнала докера

Простое удаление файла журнала является лишь временным решением, и через некоторое время будет создано очень много файлов журнала, поэтому нам необходимо устранить основную причину.

Если вы используете docker-compose, просто добавьте в файл компоновки

logging:
  driver: "json-file"
  options:
  max-size: "500m"

Этот элемент конфигурации, а затем обновить стек, вы можете.

В качестве альтернативы мы можем настроить глобальные параметры докера: изменить или создать новый файл /etc/docker/daemon.json:

"log-driver":"json-file",
"log-opts": {"max-size":"500m", "max-file":"1"}

Затем перезапустите демон докеров:

systemctl daemon-reload
systemctl restart docker

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

file