6.1 Основні функції команди docker logs
Логування контейнерів — це важлива частина управління та моніторингу Docker-додатків. Логи дозволяють відстежувати поведінку контейнерів, діагностувати проблеми та розуміти, як працюють додатки всередині контейнерів. У цій лекції ми детально розглянемо, як використовувати команду docker logs для логування контейнерів.
Основні функції команди docker logs
Команда docker logs використовується для отримання та перегляду логів контейнерів. Вона дозволяє:
- Переглядати стандартний вихід (stdout) і стандартний вихід помилок (stderr) контейнера.
- Фільтрувати та відстежувати логи в режимі реального часу.
- Шукати та аналізувати логи для діагностики проблем.
6.2 Використання команди docker logs
1. Перегляд логів контейнера
Для перегляду логів контейнера використовуй команду:
docker logs <container_id_or_name>
Приклад:
docker logs my_container
Ця команда виведе всі логи контейнера my_container.
2. Відстеження логів в реальному часі
Для відстеження логів в реальному часі використовуй флаг -f (або --follow):
docker logs -f <container_id_or_name>
Приклад:
docker logs -f my_container
Ця команда буде показувати нові логи, як тільки вони з'являтимуться.
3. Обмеження кількості рядків, що виводяться
Щоб обмежити кількість рядків, що виводяться командою docker logs, використовуй флаг --tail:
docker logs --tail <number_of_lines> <container_id_or_name>
Приклад:
docker logs --tail 10 my_container
Ця команда виведе останні 10 рядків логів контейнера my_container.
4. Виведення логів, починаючи з певного часу
Для виведення логів, починаючи з певного часу, використовуй флаг --since:
docker logs --since <timestamp> <container_id_or_name>
Приклад:
docker logs --since 2022-01-01T00:00:00 my_container
Ця команда виведе логи контейнера my_container, починаючи з 1 січня 2022 року.
5. Виведення логів до певного часу
Для виведення логів до певного часу використовуй флаг --until:
docker logs --until <timestamp> <container_id_or_name>
Приклад:
docker logs --until 2022-01-02T00:00:00 my_container
Ця команда виведе логи контейнера my_container до 2 січня 2022 року.
6.3 Приклади використання docker logs
Приклад 1: Діагностика помилки додатку
Якщо твій додаток всередині контейнера несподівано завершився з помилкою, ти можеш використати docker logs для діагностики причини:
docker logs my_app_container
Перегляд логів може допомогти тобі зрозуміти, що пішло не так і чому додаток завершився з помилкою.
Приклад 2: Відстеження роботи сервісу
Для відстеження роботи веб-сервісу в реальному часі використовуй прапорець -f:
docker logs -f web_service_container
Ця команда дозволить тобі бачити всі нові логи, які надходять до веб-сервісу.
Приклад 3: Аналіз логів за певний період
Якщо тобі потрібно проаналізувати логи за певний період, використовуй прапорці --since і --until:
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 під час запуску контейнера:
docker run --log-driver <driver_name> <container_image>
Приклад:
docker run --log-driver syslog my_app_image
Цей приклад запускає контейнер з використанням драйвера логування syslog.
Конфігурація параметрів логування
Ви можете вказати параметри логування за допомогою флага --log-opt:
docker run --log-driver syslog --log-opt syslog-address=udp://localhost:514 my_app_image
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ