[Ця відповідь охоплює поточні версії docker для тих, хто стикається із запитанням довгий час після його запитання.]
Щоб встановити обмеження журналу за замовчуванням для всіх новостворених контейнерів, ви можете додати наступне в /etc/docker/daemon.json:
{
"log-driver": "json-file",
"log-opts": {"max-size": "10m", "max-file": "3"}
}
Потім перезавантажте Docker, systemctl reload dockerякщо ви використовуєте systemd (інакше використовуйте відповідну команду перезапуску для встановлення).
Ви також можете переключитися на локальний драйвер журналювання з подібним файлом:
{
"log-driver": "local",
"log-opts": {"max-size": "10m", "max-file": "3"}
}
Локальний драйвер ведення журналу зберігає вміст журналу у внутрішньому форматі (я вважаю protobufs), тому ви отримаєте більше вмісту журналу у файлі журналу однакового розміру (або займете менше місця у файлі для тих самих журналів). Недоліком локального драйвера є зовнішні інструменти, такі як пересилання журналів, які не можуть проаналізувати необроблені журнали. Майте в виду , що docker logsпрацює тільки тоді , коли водій журналу встановлено json-file, localабо journald.
Це max-sizeобмеження для файлу журналу docker, тому воно включає накладні витрати на форматування json або локального журналу. І max-fileце кількість журналів, які буде підтримувати докер. Після досягнення обмеження розміру для одного файлу журнали обертаються, а найстаріші журнали видаляються, коли ви перевищуєте max-file.
Щоб отримати докладнішу інформацію, docker має документацію щодо всіх драйверів за адресою: https://docs.docker.com/config/containers/logging/configure/
У мене також є презентація, що висвітлює цю тему. Використовуйте, Pщоб переглянути примітки ведучого: https://sudo-bmitch.github.io/presentations/dc2019/tips-and-tricks-of-the-captains.html#logs
--log-driver=none. Якщо ви хочете вимкнути журнали лише для певних контейнерів, ви можете запустити їх за--log-driver=noneдопомогоюdocker runкоманди. Іншим варіантом може бути підключення зовнішнього сховища до/var/lib/docker. Як спільний ресурс NFS або щось, що має більше ємності, ніж хост, про який йде мова.