TGViewer
DevOps Portal | Linux DevOps Portal | Linux @loose_code · 13.1K subscribers
Post #747 3.78K
Как вывести лог Docker за определенное время? 🗓

Чуть ранее мы говорили про работу с логами. В том сообщении я упоминал про Docker и то, что в его случае логи работы контейнеров хранятся в JSON-файлах и не совсем удобны для ознакомления. Особенно, если контейнер работает давно и за это время в логи нападало много всего и он весит под сотню мегабайт. Поэтому логичнее будет выводить содержимое лога Docker в отдельный файл и делать это за определенное время. Как? Расскажу ниже 👇

1️⃣ Вывод списка запущенных контейнеров

Начнем с основной команды, которая позволяет вывести список запущенных контейнеров и получить о них основную информацию:

docker ps

После ввода команды вы увидите удобный выхлоп, где нас интересует имя или ID нужного контейнера.

2️⃣ Вывод логов конкретного контейнера

Здесь есть два способа: менее удобный и совсем неудобный. Где какой решайте сами 🤷‍♂️ Первый способ заиметь доступ к логу контейнера указан был в сообщении про работу с логами, где я указывал место хранения логов Docker:

/var/lib/docker/containers/<id_контейнера>/<id_контейнера>-json.log

Но, как говорилось ранее, вы получаете лютый JSON, где вообще ничего непонятно. Второй способ - использовать команду для вывода логов конкретного контейнера:

docker logs <имя_или_ID_контейнера>

По сути, команда вываливает в терминал содержимое JSON-файла из способа №1. Что делать дальше с этой информацией решает каждый сам, кому-то может оно и поможет, ну а мы идем дальше...

3️⃣ Сохраняем логи за определенный период в отдельный файл

Совместим все, что узнали в пунктах выше и приправим ключом --since, который позволяет задать временной отрезок, с которого будет выведен лог. Вдобавок используя перенаправление вывода сохраним это все в отдельный файл, чтобы потом его изучить:

docker logs <имя_или_ID_контейнера> --since 60m > mydocker.log

Данный пример выведет содержимое лога контейнера Docker за последний час. Ну а что делать, если нужно вывести данные с прошлого месяца? Все просто!

docker logs <имя_или_ID_контейнера> --since YYYY-MM-DD > mydocker.log

Здесь YYYY - год (2023, например), MM - месяц (09) и DD - день (21). Порядок идет именно такой, так как все эти ваши европейцы и американцы, создавшие Linux и большую часть того, что связано с программированием, используют такой формат даты. Всю эту информацию перенаправляем в файл с расширением log, который потом можно использовать как душе угодно.

4️⃣ Добавляем временную метку в логи

Но даже после использования команды в п. 3 у вас получится файл, в котором все будет в кучу и не поймешь когда и во сколько какое событие, описанное в логе произошло. Поэтому нужно добавить временную метку, делается это при помощи ключа -t.

docker logs <имя_или_ID_контейнера> --since YYYY-MM-DD -t > mydocker.log

Вот теперь-то вы получите информативный лог о том, что происходило с вашим сервисом внутри контейнера!

Полученную в конце команду вы можете использовать вместе с сервисом Transfer.sh, чтобы без лишней головомойки делиться логами с кем нужно

👉 DevOps Portal
  • 👍 16
  • 🔥 4
  • ❤ 1
More from @loose_code
  1. Oct 6, 2026Как работает Kubernetes Cluster Autoscaler? Базовый флоу выглядит так Pending Pod → Cluste…
  2. Oct 6, 2026Что будет, если убрать репликацию с диска?☁️ В K2 Cloud проверили и запустили сетевые нере…
  3. Oct 1, 2026Обработка миллионов файлов – это та точка, где большинство распределённых систем хранения…
  4. Oct 1, 2026Планы на 3 октября — прийти на RWB Infra x Security Meetup Мы направим прожекторы на инфра…
  5. Oct 1, 2026Docker 101: Как достучаться до контейнера без проброса порта Знали, что IP-адрес контейнер…
  6. Sep 30, 2026В этой статье разбирается, как спроектировать production-ready MCP-сервер для платформенны…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →