4.1 Основы команды docker logs
Команда docker logs — удобный инструмент для мониторинга и отладки контейнеров. С её помощью разработчики и системные администраторы просматривают логи контейнеров, что помогает в диагностике проблем и анализе работы приложений. В этой лекции мы подробно рассмотрим, как использовать команду docker logs, какие параметры доступны и как эффективно управлять логами.
Команда docker logs выводит логи указанного контейнера. Эти логи включают все сообщения, записанные процессами внутри контейнера в стандартные потоки вывода (stdout) и ошибок (stderr).
Синтаксис
docker logs [OPTIONS] CONTAINER
Где:
-
CONTAINER: имя или идентификатор контейнера, логи которого вы хотите просмотреть. -
OPTIONS: дополнительные параметры для настройки вывода логов.
Пример базового использования
Эта команда выведет все накопленные логи контейнера my_container.
docker logs my_container
4.2 Параметры команды docker logs
Команда docker logs поддерживает несколько опций, которые позволяют настроить вывод логов для конкретных нужд.
1. Просмотр логов в реальном времени
Для просмотра логов в реальном времени используется параметр -f (follow). Этот параметр позволяет следить за обновлениями логов по мере их появления, подобно команде tail -f.
docker logs -f my_container
2. Ограничение количества выводимых строк
Вы можете ограничить количество строк, выводимых командой docker logs, с помощью параметра --tail. Это полезно, если вам нужны только последние строки логов, а не весь журнал.
docker logs --tail 100 my_container
Этот пример выведет только последние 100 строк логов контейнера my_container.
3. Вывод логов с определенного времени
Параметр --since позволяет выводить логи, начиная с указанного времени. Время может быть указано в формате временной метки (например, 2023-07-20T15:00:00) или относительном формате (например, 1h для логов за последний час).
docker logs --since "2023-07-20T15:00:00" my_container
Или
docker logs --since 1h my_container
4. Вывод логов до определенного времени
Параметр --until позволяет выводить логи до указанного времени. Формат времени аналогичен параметру --since.
docker logs --until "2023-07-20T16:00:00" my_container
Или
docker logs --until 10m my_container
5. Объединение stdout и stderr
По умолчанию команда docker logs выводит как стандартный поток вывода (stdout), так и стандартный поток ошибок (stderr). Вы можете указать, какие потоки выводить, используя параметры --stdout и --stderr.
docker logs --stdout my_container
Этот пример выведет только сообщения из стандартного потока вывода.
4.3 Примеры использования
Пример 1: просмотр последних строк логов и слежение за обновлениями
Этот пример выведет последние 50 строк логов контейнера my_container и будет следить за новыми записями в реальном времени.
docker logs -f --tail 50 my_container
Пример 2: вывод логов за последние 24 часа
Этот пример выведет все логи, накопленные за последние 24 часа для контейнера my_container.
docker logs --since 24h my_container
Пример 3: вывод логов за определенный временной промежуток
Этот пример выведет логи, записанные в период с 15:00 до 16:00 20 июля 2023 года для контейнера my_container.
docker logs --since "2023-07-20T15:00:00" --until "2023-07-20T16:00:00" my_container
4.4 Практические сценарии
1. Отладка приложения
Если ваше приложение работает некорректно или “падает”, просмотр логов может помочь диагностировать проблему. Используйте команду docker logs, чтобы найти ошибки и предупреждения в логах.
docker logs my_app_container
2. Мониторинг работы сервера
Для мониторинга работы сервера в реальном времени вы можете использовать команду docker logs с опцией -f.
docker logs -f web_server_container
Это позволяет следить за запросами и ответами сервера в реальном времени.
3. Анализ производительности
Если вы хотите проанализировать производительность приложения за определенный период времени, используйте параметры --since и --until.
docker logs --since "2023-07-20T00:00:00" --until "2023-07-20T23:59:59" my_app_container
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ