Откуда берется `docker-compose logs`? - PullRequest
       41

Откуда берется `docker-compose logs`?

0 голосов
/ 01 сентября 2018

Как и большинство людей, которые проголосовали за редкую страницу документации Docker здесь и здесь , меня смущает то, что делает docker-compose logs.

Когда я запускаю cd /apps/laradock/ && docker-compose logs -f nginx, я вижу очень длинный вывод от многих дней назад до настоящего времени.

Из какого файла или файлов этот файл извлекается?

Единственный файл журнала nginx, который я смог найти, был /apps/laradock/logs/nginx/error.log, и в нем не так уж много (поэтому не то же самое).

И есть ли способ "ротации журналов" или иным образом гарантировать, что я не трачу больше, чем определенное количество диска на ведение журнала?

Ответы [ 3 ]

0 голосов
/ 01 сентября 2018

С драйвером ведения журнала по умолчанию, json-файл , ваши журналы хранятся в /var/lib/docker/containers/<container-id>/. Обратите внимание, что здесь регистрируется вывод stdout и stderr из PID 1 вашего контейнера.

Что касается «ротации журнала», драйвер json-файла имеет несколько опций, которые вы можете передать ему, чтобы ограничить размер файла журнала и максимальное количество файлов журнала. См. max-size и max-file документации .

С помощью docker-compose вы можете установить следующие параметры:

version: '3'

services:
  myservice:
    image: ...
    logging:
      options:
        max-file: "3"
        max-size: "50m"
0 голосов
/ 01 сентября 2018

Зависит от того, какой драйвер ведения журнала используется.

Вы можете проверить, какой из них настроен для демона Docker, с помощью:

docker info -f '{{.LoggingDriver}}'

Драйвер по умолчанию json-файл регистрируется в:

/var/lib/docker/containers/<container-id>/<container-id>-json.log

Docker compose затем агрегирует журналы для каждого контейнера в docker-compose.yml.

0 голосов
/ 01 сентября 2018

Вы можете посмотреть этот документ.

...