JavaRush /Курси /Модуль 2: Fullstack /Логування контейнерів

Логування контейнерів

Модуль 2: Fullstack
Рівень 17 , Лекція 5
Відкрита

6.1 Основні функції команди docker logs

Логування контейнерів — це важлива частина управління та моніторингу Docker-додатків. Логи дозволяють відстежувати поведінку контейнерів, діагностувати проблеми та розуміти, як працюють додатки всередині контейнерів. У цій лекції ми детально розглянемо, як використовувати команду docker logs для логування контейнерів.

Основні функції команди docker logs

Команда docker logs використовується для отримання та перегляду логів контейнерів. Вона дозволяє:

  • Переглядати стандартний вихід (stdout) і стандартний вихід помилок (stderr) контейнера.
  • Фільтрувати та відстежувати логи в режимі реального часу.
  • Шукати та аналізувати логи для діагностики проблем.

6.2 Використання команди docker logs

1. Перегляд логів контейнера

Для перегляду логів контейнера використовуй команду:

Terminal

docker logs <container_id_or_name>

Приклад:

Terminal

docker logs my_container 

Ця команда виведе всі логи контейнера my_container.

2. Відстеження логів в реальному часі

Для відстеження логів в реальному часі використовуй флаг -f (або --follow):

Terminal

docker logs -f <container_id_or_name>

Приклад:

Terminal

docker logs -f my_container

Ця команда буде показувати нові логи, як тільки вони з'являтимуться.

3. Обмеження кількості рядків, що виводяться

Щоб обмежити кількість рядків, що виводяться командою docker logs, використовуй флаг --tail:

Terminal

docker logs --tail <number_of_lines> <container_id_or_name>

Приклад:

Terminal

docker logs --tail 10 my_container

Ця команда виведе останні 10 рядків логів контейнера my_container.

4. Виведення логів, починаючи з певного часу

Для виведення логів, починаючи з певного часу, використовуй флаг --since:

Terminal

docker logs --since <timestamp> <container_id_or_name>

Приклад:

Terminal

docker logs --since 2022-01-01T00:00:00 my_container

Ця команда виведе логи контейнера my_container, починаючи з 1 січня 2022 року.

5. Виведення логів до певного часу

Для виведення логів до певного часу використовуй флаг --until:

Terminal

docker logs --until <timestamp> <container_id_or_name>

Приклад:

Terminal

docker logs --until 2022-01-02T00:00:00 my_container

Ця команда виведе логи контейнера my_container до 2 січня 2022 року.

6.3 Приклади використання docker logs

Приклад 1: Діагностика помилки додатку

Якщо твій додаток всередині контейнера несподівано завершився з помилкою, ти можеш використати docker logs для діагностики причини:

Terminal

docker logs my_app_container 

Перегляд логів може допомогти тобі зрозуміти, що пішло не так і чому додаток завершився з помилкою.

Приклад 2: Відстеження роботи сервісу

Для відстеження роботи веб-сервісу в реальному часі використовуй прапорець -f:

Terminal

docker logs -f web_service_container 

Ця команда дозволить тобі бачити всі нові логи, які надходять до веб-сервісу.

Приклад 3: Аналіз логів за певний період

Якщо тобі потрібно проаналізувати логи за певний період, використовуй прапорці --since і --until:

Terminal

docker logs --since "2023-07-01" --until "2023-07-02" my_app_container 

Ця команда виведе логи контейнера my_app_container за 1 липня 2023 року.

6.4 Конфігурація драйверів логування Docker

Docker підтримує різні драйвери логування, які можна налаштувати для контейнерів. Основні драйвери логування включають:

  • json-file: За замовчуванням. Логи зберігаються у файли в форматі JSON.
  • syslog: Логи відправляються у системний журнал (syslog).
  • journald: Логи відправляються у систему journald.
  • gelf: Логи відправляються у сервери, що підтримують протокол GELF (Graylog Extended Log Format).
  • fluentd: Логи відправляються у сервер Fluentd.

Установка драйвера логування

Для установки драйвера логування використовуйте флаг --log-driver під час запуску контейнера:

Terminal

docker run --log-driver <driver_name> <container_image>

Приклад:

Terminal

docker run --log-driver syslog my_app_image

Цей приклад запускає контейнер з використанням драйвера логування syslog.

Конфігурація параметрів логування

Ви можете вказати параметри логування за допомогою флага --log-opt:

Terminal

docker run --log-driver syslog --log-opt syslog-address=udp://localhost:514 my_app_image
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ