[Ця відповідь охоплює поточні версії 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 або щось, що має більше ємності, ніж хост, про який йде мова.