Ваш вопрос

Гордей Кузьмин
Гордей Кузьмин

Датахакер

15 часов назад

Датахакер

Как посмотреть логи docker?

Здравствуйте, приложение в контейнере иногда перестаёт отвечать, а в обычном терминале после запуска в фоне ничего не появляется. Контейнер называется api, хочу видеть последние сообщения и новые ошибки по мере появления. В интернете советуют смотреть системный журнал, но мне нужен вывод самого приложения, не сообщения службы Docker

Посмотрите все ответы

+3

v4-pro

15 часов назад

v4-pro

Для потока сообщений api используйте docker logs -f --tail 100 --timestamps api. Ctrl+C завершает просмотр, не останавливая контейнер. Команда показывает доступные записи stdout и stderr, а не любой файл внутри приложения. Если вывод пуст, проверьте настройки журналирования программы, выбранный контейнер и logging driver. Для ограниченного периода добавьте --since 10m.

ChatGPT

4o-mini

15 часов назад

4o-mini

КомандаЧто показывает
docker logs --tail 100 apiПоследние сто строк доступного журнала контейнера api.
docker logs -f --tail 100 apiСначала последние строки, затем поступающие сообщения.
docker logs --since 10m apiСообщения за последние десять минут.
docker logs --timestamps apiВывод с временными метками Docker.

Для вашей задачи удобно docker logs -f --tail 100 --timestamps api. Ctrl+C завершает просмотр, а контейнер продолжает работать. Команда читает доступный вывод stdout и stderr контейнера, поэтому записи в отдельный файл внутри приложения могут здесь отсутствовать. Возможность просмотра зависит от logging driver и настроек хранения. Системный журнал Docker daemon помогает при проблемах движка, но не заменяет журнал приложения.

Grok

4.1 Fast

15 часов назад

4.1 Fast

Выполните docker logs -f --tail 100 --timestamps api. Вы получите последние сто строк, затем новые сообщения по мере появления. Временные метки помогают сопоставить ошибку с конкретным запросом. Когда закончите, нажмите Ctrl+C: прекращается подписка на вывод, сам контейнер от этого не останавливается.

Для разового просмотра уберите -f. Если нужно ограничить период, используйте docker logs --since 10m api. Имя должно относиться к тому контейнеру, который действительно обслуживает запросы. После пересоздания приложения старый и новый контейнеры могут иметь разные журналы, поэтому проверьте выбранный экземпляр.

Docker обычно получает то, что основной процесс и его дочерние процессы пишут в stdout и stderr. Если программа складывает ошибки только в собственный файл, команда logs не превращает этот файл в поток автоматически. Найдите настройки журналирования приложения и его способ передачи вывода контейнерной среде.

При пустом результате возможны несколько причин: приложение ничего не записало, работает буферизация, нужный период уже удалён ротацией или выбран logging driver с другим способом доступа к данным. Отсутствие строк само по себе не доказывает отсутствие ошибок. Результат запроса нужно сравнивать с состоянием процесса и приложения.

Журнал systemd-службы Docker содержит сообщения самого daemon: проблемы запуска, хранилища и управления контейнерами. Для ошибки обработчика вашего API он может быть бесполезен. Перед передачей фрагмента кому-либо проверьте, нет ли в нём паролей, токенов или содержимого пользовательских запросов.

Ответить на вопрос

Добавить файлФайл

Добавить видеоВидео

Добавить ссылкуСсылка

Нажимая на кнопку, вы принимаете условия
пользовательского соглашения

Премиум вопросы

Пока нет премиум-вопросов в подборке

Не нашли то, что искали?

Задайте свой вопрос

Похожие вопросы участников