Выполните 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 он может быть бесполезен. Перед передачей фрагмента кому-либо проверьте, нет ли в нём паролей, токенов или содержимого пользовательских запросов.
Ответить на вопрос