Подтвердить что ты не робот

Где файл журнала с журналами из контейнера?

Я запускаю несколько контейнеров, используя docker-compose. Я вижу журналы приложений с командой docker-compose logs. Однако я хотел бы получить доступ к необработанному файлу журнала, чтобы отправить его где-нибудь, например? Где он находится? Я думаю, это отдельный журнал для каждого контейнера (внутри контейнера?), Но где я могу его найти?

4b9b3361

Ответ 1

Журналы контейнеров можно найти в:

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

(если вы используете формат журнала по умолчанию, который является json)

Ответ 2

Вы можете docker inspect каждый контейнер, чтобы увидеть, где находятся его журналы:

docker inspect --format='{{.LogPath}}' $INSTANCE_ID

И, если вы пытаетесь выяснить, где журналы должны управлять их общим размером, или настроить параметры самого журнала, вы найдете следующее уместным.

Фиксирование количества места, зарезервированного для журналов

Это взято из запроса на возможность очистки истории журнала (выпуск 1083):

В Docker 1.8 и docker-compose 1.4 уже существует метод ограничения размера журнала с использованием драйвера журнала docker compose и максимального размера log-opt:

mycontainer:
  ...
  log_driver: "json-file"
  log_opt:
    # limit logs to 2MB (20 rotations of 100K each)
    max-size: "100k"
    max-file: "20"

В docker составляют файлы версии 2, синтаксис немного изменился:

version: '2'
...
mycontainer:
  ...
  logging:
    #limit logs to 200MB (4rotations of 50M each)
    driver: "json-file"
    options:
      max-size: "50m"
      max-file: "4"

(обратите внимание, что в обоих синтаксисах числа выражаются в виде строк в кавычках)

Возможная проблема с docker-compose logs не заканчивающимися

  • проблема 1866: logs команд не завершаются, если контейнер уже остановлен

Ответ 3

Чтобы увидеть, сколько места занимает каждый контейнерный журнал, используйте это:

docker ps -qa | xargs docker inspect --format='{{.LogPath}}' | xargs ls -hl

(вам может понадобиться sudo до ls).

Ответ 4

Чтобы напрямую просмотреть файл журнала меньше, я использую:

docker inspect $1 | grep 'LogPath' | sed -n "s/^.*\(\/var.*\)\",$/\1/p" | xargs sudo less

запускается как. /viewLogs.sh CONTAINERNAME

Ответ 5

По состоянию на 22.08.2008 логи можно найти в:

/data/docker/containers/<container id>/<container id>-json.log

Ответ 6

В Windows расположение по умолчанию: C:\ProgramData\Docker\containers\<container-id>-json.log.