Ограничить размер файла журнала для существующих контейнеров в Docker - PullRequest
0 голосов
/ 29 марта 2020

Я новичок в docker и не знал, что размер файла журнала не ограничен.

Теперь у меня запущено 2 контейнера, которые я хочу сохранить, но ограничиваю размер их файлов журнала (который в настоящее время их размер превышает 40 ГБ.)

Возможно ли это для существующих контейнеров, поскольку нет никакой возможности использовать любую команду запуска docker.

1 Ответ

0 голосов
/ 31 марта 2020

Я тоже недавно столкнулся с этой проблемой ( 3 контейнера, в частности, съели более 68 ГБ (!) ), поэтому я сделал несколько заметок для себя; Я вставлю их сюда.

Не допускайте, чтобы Docker контейнеры заполняли диск журналами контейнеров:

В разделе «Дополнительно» Docker Пользовательский интерфейс рабочего стола, добавьте это (Максимальный размер журнала 5 МБ / Максимальное количество журналов 500, отрегулируйте по своему усмотрению):

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

Как и я, вы, вероятно, также захотите очистить свою docker ВМ из всех этих журналов:

Очистить файлы журналов (контейнеры) (S SH в ВМ и chroot /host для этого):

Перечислите их:

find /var/lib/docker/containers/ -type f -name "*.log"

Оттуда выберите, какие удалить, отредактировав путь в примере ниже. Чтобы удалить, просто добавьте -delete в конец вашей команды.

т.е.:

find /var/lib/docker/containers/ -type f -name "*.log" -delete

Последнее, что вы, возможно, захотите сделать, - это оптимизируйте вашу Docker VM после очистка всего этого барахла:

Для оптимизации / сокращения виртуальной машины (используйте Powershell):

Mount-VHD -Path "C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks\DockerDesktop.vhdx" -ReadOnly

Optimize-VHD -Path "C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks\DockerDesktop.vhdx" -Mode Full

Dismount-VHD -Path "C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks\DockerDesktop.vhdx"
...