2015-10-08 3 views
29

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

ответ

56

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

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

(если вы используете форму журнала по умолчанию у которых есть JSON)

36

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

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

Интересны:

Докер 1.8 и docker- составляют 1.4 там уже существует способ, чтобы ограничить размер журнала с помощью docker compose log driver и лог-неавтоматического макс-размер:

log_driver: "json-file" 
log_opt: 
    max-size: "100k" 
    max-file: "20" 
  • issue 1866: журналы не выходит, если контейнер уже остановлен
0

Для того, чтобы просмотреть непосредственно логфайл менее, я использую:

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

перспективе, как ./viewLogs.sh ИмяКонтейнера

Смежные вопросы