Для разработчиков или инженеров DevOps/SecOps всегда важно просматривать логи приложения, чтобы отладить определенные проблемы или понять события, происходящие в вашем приложении.
В контексте Docker вы можете получить доступ к журналам Docker-контейнера с помощью docker CLI.
Эти логи содержат информацию, которая регистрируется контейнером, и могут помочь в устранении неполадок или мониторинге состояния приложения, когда это необходимо.
В этой статье мы рассмотрим, как просматривать журналы контейнеров docker.
Настройка лабораторной среды
Давайте скачаем образ Nginx из публичного dockerhub с помощью следующей команды.
docker pull nginx
Далее запустим Docker с Nginx с помощью приведенной ниже команды.
docker run nginx:latest

Теперь давайте проверим, запущен ли контейнер docker, с помощью команды $ docker ps.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES dbc8526c6b7e nginx:latest "/docker-entrypoint.…" 19 seconds ago Up 12 seconds 80/tcp modest_kowalevski
Использование команды docker logs
Команда docker logs позволяет получить логи контейнера docker без необходимости входить внутрь контейнера.
Эти логи собираются из потоков STDOUT и STDERR контейнеров docker.
Логи хранятся на хосте docker в формате JSON, и на каждый контейнер всегда приходится один файл лога.
Синтаксис команды docker logs показан ниже.
docker logs <container ID>
Давайте разберемся в этом на примере.
Использование команды docker logs –follow
Теперь, когда контейнер запущен и работает, давайте просмотрим логи контейнера docker
docker logs dbc8526c6b7e
где мы указываем ID контейнера в команде и видим в терминале следующий вывод.

Эта команда покажет логи указанного контейнера docker.
Однако вы не сможете просматривать вывод непрерывно.
Чтобы просматривать логи непрерывно, мы можем создать непрерывный поток вывода на терминал с помощью опции –follow.
docker logs --follow <container ID>
Приведенная выше команда будет передавать последние выходные данные из контейнеров stdout и stderr, и вы сможете отслеживать логи в режиме реального времени до тех пор, пока не остановите процесс.
Этот механизм может быть очень полезен в ситуациях, когда вам нужно устранить неполадки в производственных системах, отслеживая логи контейнеров docker в режиме реального времени.
Использование команды docker logs –tail
Должна возникнуть ситуация, когда вы хотите ограничить количество строк лога контейнера, выводимых на экран.
Как же это сделать?
Команды logs у Docker предоставляют опцию –tail, которая может помочь достичь этой цели.
Давайте рассмотрим это на примере.
docker logs --tail <number> <container_id>
Давайте просмотрим 10 строк вывода нашего контейнера Nginx с помощью приведенной ниже команды.
docker logs --tail 10 dbc8526c6b7e
Заключение
В этой статье мы узнали о том, как просматривать логи контейнеров docker.