JavaRush /Курсы /Модуль 2: Fullstack /Работа с логами контейнеров

Работа с логами контейнеров

Модуль 2: Fullstack
12 уровень , 3 лекция
Открыта

4.1 Основы команды docker logs

Команда docker logs — удобный инструмент для мониторинга и отладки контейнеров. С её помощью разработчики и системные администраторы просматривают логи контейнеров, что помогает в диагностике проблем и анализе работы приложений. В этой лекции мы подробно рассмотрим, как использовать команду docker logs, какие параметры доступны и как эффективно управлять логами.

Команда docker logs выводит логи указанного контейнера. Эти логи включают все сообщения, записанные процессами внутри контейнера в стандартные потоки вывода (stdout) и ошибок (stderr).

Синтаксис


docker logs [OPTIONS] CONTAINER

Где:

  • CONTAINER: имя или идентификатор контейнера, логи которого вы хотите просмотреть.
  • OPTIONS: дополнительные параметры для настройки вывода логов.

Пример базового использования

Эта команда выведет все накопленные логи контейнера my_container.

Terminal


docker logs my_container

4.2 Параметры команды docker logs

Команда docker logs поддерживает несколько опций, которые позволяют настроить вывод логов для конкретных нужд.

1. Просмотр логов в реальном времени

Для просмотра логов в реальном времени используется параметр -f (follow). Этот параметр позволяет следить за обновлениями логов по мере их появления, подобно команде tail -f.

Terminal


docker logs -f my_container 

2. Ограничение количества выводимых строк

Вы можете ограничить количество строк, выводимых командой docker logs, с помощью параметра --tail. Это полезно, если вам нужны только последние строки логов, а не весь журнал.

Terminal


docker logs --tail 100 my_container 

Этот пример выведет только последние 100 строк логов контейнера my_container.

3. Вывод логов с определенного времени

Параметр --since позволяет выводить логи, начиная с указанного времени. Время может быть указано в формате временной метки (например, 2023-07-20T15:00:00) или относительном формате (например, 1h для логов за последний час).

Terminal


docker logs --since "2023-07-20T15:00:00" my_container 

Или

Terminal


docker logs --since 1h my_container 

4. Вывод логов до определенного времени

Параметр --until позволяет выводить логи до указанного времени. Формат времени аналогичен параметру --since.

Terminal


docker logs --until "2023-07-20T16:00:00" my_container 

Или

Terminal


docker logs --until 10m my_container 

5. Объединение stdout и stderr

По умолчанию команда docker logs выводит как стандартный поток вывода (stdout), так и стандартный поток ошибок (stderr). Вы можете указать, какие потоки выводить, используя параметры --stdout и --stderr.

Terminal


docker logs --stdout my_container 

Этот пример выведет только сообщения из стандартного потока вывода.

4.3 Примеры использования

Пример 1: просмотр последних строк логов и слежение за обновлениями

Этот пример выведет последние 50 строк логов контейнера my_container и будет следить за новыми записями в реальном времени.

Terminal


docker logs -f --tail 50 my_container 

Пример 2: вывод логов за последние 24 часа

Этот пример выведет все логи, накопленные за последние 24 часа для контейнера my_container.

Terminal


docker logs --since 24h my_container 

Пример 3: вывод логов за определенный временной промежуток

Этот пример выведет логи, записанные в период с 15:00 до 16:00 20 июля 2023 года для контейнера my_container.

Terminal


docker logs --since "2023-07-20T15:00:00" --until "2023-07-20T16:00:00" my_container 

4.4 Практические сценарии

1. Отладка приложения

Если ваше приложение работает некорректно или “падает”, просмотр логов может помочь диагностировать проблему. Используйте команду docker logs, чтобы найти ошибки и предупреждения в логах.

Terminal


docker logs my_app_container 

2. Мониторинг работы сервера

Для мониторинга работы сервера в реальном времени вы можете использовать команду docker logs с опцией -f.

Terminal


docker logs -f web_server_container 

Это позволяет следить за запросами и ответами сервера в реальном времени.

3. Анализ производительности

Если вы хотите проанализировать производительность приложения за определенный период времени, используйте параметры --since и --until.

Terminal

        
docker logs --since "2023-07-20T00:00:00" --until "2023-07-20T23:59:59" my_app_container 
3
Задача
Модуль 2: Fullstack, 12 уровень, 3 лекция
Недоступна
Просмотр логов контейнера
Просмотр логов контейнера
3
Задача
Модуль 2: Fullstack, 12 уровень, 3 лекция
Недоступна
Просмотр логов в реальном времени
Просмотр логов в реальном времени
3
Задача
Модуль 2: Fullstack, 12 уровень, 3 лекция
Недоступна
Ограничение количества строк логов
Ограничение количества строк логов
Комментарии (5)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Slevin Уровень 11
3 октября 2025

docker logs --stdout my_container
Такого флага не существует. Вы проверяете свои лекции?
Anonymous #3577823 Уровень 17
10 октября 2025
и --stderr флага тоже не существует) ни в документации нигде. походу AI генерит лекции а эти ... не проверяют)
WilDHedgehog Уровень 7
10 марта 2025
Валидатор принял вторую задачу только с 3 раза
WilDHedgehog Уровень 7
10 марта 2025
А третью со второго
Slevin Уровень 11
3 октября 2025
Вопрос из теста на IQ: "Таким образом, с какого раза Валидатор примет четвертую задачу?" 😂