Ответ 1
Журналы контейнеров можно найти в:
/var/lib/docker/containers/<container id>/<container id>-json.log
(если вы используете формат журнала по умолчанию, который является json)
Я запускаю несколько контейнеров, используя docker-compose
. Я вижу журналы приложений с командой docker-compose logs
. Однако я хотел бы получить доступ к необработанному файлу журнала, чтобы отправить его где-нибудь, например? Где он находится? Я думаю, это отдельный журнал для каждого контейнера (внутри контейнера?), Но где я могу его найти?
Журналы контейнеров можно найти в:
/var/lib/docker/containers/<container id>/<container id>-json.log
(если вы используете формат журнала по умолчанию, который является json)
Вы можете 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
не заканчивающимися
logs
команд не завершаются, если контейнер уже остановленЧтобы увидеть, сколько места занимает каждый контейнерный журнал, используйте это:
docker ps -qa | xargs docker inspect --format='{{.LogPath}}' | xargs ls -hl
(вам может понадобиться sudo
до ls
).
Чтобы напрямую просмотреть файл журнала меньше, я использую:
docker inspect $1 | grep 'LogPath' | sed -n "s/^.*\(\/var.*\)\",$/\1/p" | xargs sudo less
запускается как. /viewLogs.sh CONTAINERNAME
По состоянию на 22.08.2008 логи можно найти в:
/data/docker/containers/<container id>/<container id>-json.log
В Windows расположение по умолчанию: C:\ProgramData\Docker\containers\<container-id>-json.log
.