Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Описание

Лог stdout контейнеров по умолчанию сохраняется в файлы для каждого контейнера и не ротируется, что может привести к исчерпанию места на диске.

По умолчанию они располагаются в папках:

/var/lib/docker/containers/*/

Вручную удалить все логи можно командой:

truncate -s 0 /var/lib/docker/containers/*/*-json.log

Настройка ротации логов

Ротация логов сервисом docker

Данный способ является предпочтительным.

Данный способ работает, если используется JSON формат файла логов. Проверить можно командой:

docker info | grep "Logging Driver"
В выводе должно быть:
 Logging Driver: json-file

Открыть (или при необходимости создать) файл:

/etc/docker/daemon.json

Добавить описание условий ротации:

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

Выполнить перезапуск docker:

systemctl restart docker

Выполнить команду

docker-compose down

Запусть контейнер

docker-compose up -d

Проверить, что настройки применились можно командой:

docker container inspect <имя контейнера> | grep LogConfig -A6

Вывод команды:

            "LogConfig": {
                "Type": "json-file",
                "Config": {
                    "max-file": "10",
                    "max-size": "10m"
                }
            },

Ротация логов с помощью настроек docker-compose.yml

Открыть файл:

 docker-compose.yml

 Добавить настройки логирования (потребуется указать настройки для каждого контейнера):

version: "3"

services:
  <имя сервиса>:
    logging:
      driver: "json-file" 
      options:
        max-size: 10m
        max-file: "10" 
    image: hub.eltex-co.ru/softwlc/eltex-<имя образа докер>:${SWLC_VERSION}

Перезапустить контейнер:

docker-compose down
docker-compose up -d
  • Нет меток