В Docker имеются механизмы ведения журналов, которые можно использовать для устранения проблем по мере их возникновения. Ведение журнала существует на уровне демона и на уровне контейнера. Давайте подробнее их рассмотрим.
Ведение журнала на уровне демона
На уровне демона доступно четыре уровня ведения журнала:
- Debug (Отладка) — детализирует всю возможную информацию, обрабатываемую процессом демона.
- Info (Информация) — в ней подробно описываются все ошибки, а также информация, обрабатываемая процессом демона.
- Errors (Ошибки) — в нем подробно описываются все ошибки, обработанные процессом демона.
- Fatal (Неустранимые ошибки) — детально описывает все неустранимые ошибки, обработанные процессом демона.
Выполните следующие шаги, чтобы узнать, как включить ведение журнала.
Шаг 1. Первым делом нам необходимо остановить процесс-демон Docker, если он запущен. Сделать это можно при помощи следующей команды:
sudo service docker stop
Шаг 2. Теперь нам необходимо запустить процесс-демон Docker. Но на этот раз нам нужно добавить параметр –l, чтобы указать опцию логирования. Итак, давайте запустим следующую команду при запуске процесса-демона Docker:
sudo dockerd –l debug &
Детальнее рассмотрим данный запрос:
- dockerd — это исполняемый файл для процесса-демона Docker.
- Оператор –l используется для того, чтобы указать уровень логирования. В нашем случае, мы ставим его, как Debug (Отладочный).
- & используется для возврата в командную строку после включения ведения журнала.
После запуска процесса Docker с ведением журналов вы также увидите журналы отладки, отправленные в консоль.
Теперь, если вы выполните какую-либо команду Docker, такую как docker images, информация об отладке также будет отправлена в консоль.
Ведение журнала на уровне контейнера
Ведение журнала также доступно на уровне контейнера. Итак, в нашем примере давайте сначала развернём контейнер Ubuntu. Мы можем сделать это с помощью следующей команды:
sudo docker run –it ubuntu /bin/bash
Теперь мы можем воспользоваться командой docker log для просмотра журналов контейнера.
docker logs containerID
- containerID — это ID контейнера, логи которого вам необходимо просмотреть.
Пример
Давайте выполним данную команду на нашем хосте Docker. Перед этим вы можете выполнить некоторые команды, находясь в контейнере.
sudo docker logs 6bfb1271fcdd
Пример вывода:
Из вывода видно, что команды, выполняемые в контейнере, отображаются в журнале.
Источник: Docker — Logging