Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Linux / DevOps

Как смотреть логи Docker контейнера: docker logs --tail 100 -f

Обновлено: 27.08.2026 · Официальная документация ↗

Как понять, что происходит внутри Docker-контейнера?

Когда контейнер работает нестабильно, отвечает с задержками или выдает внутренние ошибки, единственный способ диагностики — чтение его журналов (логов). В отличие от стандартных программ, Docker перехватывает потоки вывода приложения stdout и stderr и объединяет их в единый журнал, доступный через команду docker logs.

Сравнение режимов просмотра логов:

КомандаЧто делаетКогда использовать
docker logs <name>Выводит весь огромный лог с момента создания контейнераТолько для новых контейнеров (иначе зависнет консоль)
docker logs --tail 100 -fПоказывает последние 100 строк и держит поток открытымОсновной способ живой отладки
docker logs --since 10mПоказывает события за последние 10 минутДля анализа недавних сбоев и ошибок

Практические команды работы с логами Docker

  1. 1. Просмотр последних 100 строк и слежение «на лету» (-f)

    docker logs --tail 100 -f my_container_name

    (Ключ -f оставляет консоль в режиме реального времени: как только в приложении произойдет событие, оно мгновенно появится на экране. Для выхода нажмите Ctrl + C).

  2. 2. Просмотр логов за конкретный интервал времени (--since)

    # Показать логи за последние 15 минут:
    docker logs --since 15m my_container_name
    
    # Показать логи с точного времени:
    docker logs --since "2025-02-23T10:00:00" my_container_name
  3. 3. Добавление меток точного времени (Таймстампы)

    Если само приложение не пишет дату и время в строках логов, добавьте флаг -t:

    docker logs -t --tail 50 my_container_name
  4. 4. Поиск ошибок через grep

    docker logs --tail 500 my_container_name 2>&1 | grep -i "error"
💡 Практика специалистов: Если перенаправить поток docker logs контейнера в файл через обычный знак > (например, docker logs app > log.txt), в файл могут не попасть сообщения об ошибках. Это связано с тем, что ошибки пишутся в поток stderr. Всегда используйте конструкцию перенаправления 2>&1.

Частые вопросы (FAQ)

Почему при выполнении docker logs терминал зависает на несколько минут?

Если контейнер работает много месяцев, объем лога может достигать десятков гигабайт. Команда без ключа --tail пытается выгрузить весь файл целиком в консоль. Всегда используйте --tail 100.

Как посмотреть логи всех сервисов в Docker Compose одновременно?

Перейдите в каталог с файлом docker-compose.yml и выполните: docker compose logs --tail 50 -f.

Куда Docker сохраняет файлы логов на сервере?

Они хранятся в JSON-файлах в системном каталоге /var/lib/docker/containers/<CONTAINER_ID>/<CONTAINER_ID>-json.log.

Почему команда docker logs выдает ошибку: configured log driver does not support reading?

Это происходит, если в daemon.json настроена отправка логов во внешний сервис (например, syslog, fluentd или awslogs). В этом случае логи нужно смотреть в соответствующей внешней системе мониторинга.

Полезные материалы
Рекомендуем