4.1 Основи команди docker logs
Команда docker logs — зручний інструмент для моніторингу та налагодження контейнерів. За її допомогою розробники та системні адміністратори переглядають логи контейнерів, що допомагає в діагностиці проблем і аналізі роботи додатків. У цій лекції ми детально розглянемо, як використовувати команду docker logs, які параметри доступні та як ефективно керувати логами.
Команда docker logs виводить логи вказаного контейнера. Ці логи включають всі повідомлення, записані процесами всередині контейнера у стандартні потоки виводу (stdout) та помилок (stderr).
Синтаксис
docker logs [OPTIONS] CONTAINER
Де:
-
CONTAINER: ім'я або ідентифікатор контейнера, чиї логи ви хочете переглянути. -
OPTIONS: додаткові параметри для налаштування виводу логів.
Приклад базового використання
Ця команда виведе всі накопичені логи контейнера my_container.
docker logs my_container
4.2 Параметри команди docker logs
Команда docker logs підтримує кілька опцій, які дозволяють налаштувати вивід логів для конкретних потреб.
1. Перегляд логів в реальному часі
Для перегляду логів в реальному часі використовується параметр -f (follow). Цей параметр дозволяє стежити за оновленнями логів у міру їх появи, подібно до команди tail -f.
docker logs -f my_container
2. Обмеження кількості виведених рядків
Ви можете обмежити кількість рядків, виведених командою docker logs, за допомогою параметра --tail. Це корисно, якщо вам потрібні лише останні рядки логів, а не весь журнал.
docker logs --tail 100 my_container
Цей приклад виведе лише останні 100 рядків логів контейнера my_container.
3. Вивід логів з визначеного часу
Параметр --since дозволяє виводити логи, починаючи з вказаного часу. Час може бути вказаний у форматі часової позначки (наприклад, 2023-07-20T15:00:00) або відносному форматі (наприклад, 1h для логів за останню годину).
docker logs --since "2023-07-20T15:00:00" my_container
Або
docker logs --since 1h my_container
4. Вивід логів до визначеного часу
Параметр --until дозволяє виводити логи до вказаного часу. Формат часу аналогічний параметру --since.
docker logs --until "2023-07-20T16:00:00" my_container
Або
docker logs --until 10m my_container
5. Об'єднання stdout і stderr
За замовчуванням команда docker logs виводить як стандартний потік виводу (stdout), так і стандартний потік помилок (stderr). Ви можете вказати, які потоки виводити, використовуючи параметри --stdout і --stderr.
docker logs --stdout my_container
Цей приклад виведе лише повідомлення зі стандартного потоку виводу.
4.3 Приклади використання
Приклад 1: перегляд останніх рядків логів та слідкування за оновленнями
Цей приклад виведе останні 50 рядків логів контейнера my_container і буде слідкувати за новими записами в реальному часі.
docker logs -f --tail 50 my_container
Приклад 2: виведення логів за останні 24 години
Цей приклад виведе всі логи, накопичені за останні 24 години для контейнера my_container.
docker logs --since 24h my_container
Приклад 3: виведення логів за певний часовий проміжок
Цей приклад виведе логи, записані у період з 15:00 до 16:00 20 липня 2023 року для контейнера my_container.
docker logs --since "2023-07-20T15:00:00" --until "2023-07-20T16:00:00" my_container
4.4 Практичні сценарії
1. Відлагодження додатка
Якщо твій додаток працює некоректно або “падає”, перегляд логів може допомогти знайти проблему. Використовуй команду docker logs, щоб знайти помилки та попередження в логах.
docker logs my_app_container
2. Моніторинг роботи сервера
Для моніторингу роботи сервера в реальному часі ти можеш використовувати команду docker logs з опцією -f.
docker logs -f web_server_container
Це дозволяє спостерігати за запитами та відповідями сервера в реальному часі.
3. Аналіз продуктивності
Якщо тобі потрібно проаналізувати продуктивність додатка за певний період часу, використовуй параметри --since та --until.
docker logs --since "2023-07-20T00:00:00" --until "2023-07-20T23:59:59" my_app_container
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ