Знижка 50% усі тарифи, обмежений час. Починаючи від $2.48/mo
9 хвилин залишилось
Інструменти для розробників і DevOps

Простий посібник із логів Docker Compose: як переглядати та керувати ними

Ада Лавгуд By Ада Лавгуд 9 хв читання Оновлено 23 лютого 2025
docker журнали

Хочете знати, що роблять програми Docker за лаштунками? Давайте дізнаємося більше про таємне вікно, відоме як логи, у ваші контейнери, які показують кожен їх крок. Логи дуже корисні для усунення неполадок. Але перш ніж ми почнемо, давайте швидко розглянемо, що таке Docker та Docker Compose.

Docker дозволяє упакувати ваші програми в компактні контейнери й запустити їх на більшості операційних систем без додаткових залежностей. Це як розмістити програми в невеликих коробках — контейнерах, які однаково працюють скрізь. Розуміння контейнерів — важливе підґрунтя для вивчення Docker Compose. Рекомендуємо спочатку прочитати нашу статтю про переваги контейнеризації.

Docker Compose входить до складу Docker і спрощує розроблення кількох контейнеризованих програм, об'єднуючи їхні сервіси, мережі та сховища. Логи контейнерів Docker та логування Docker Compose дозволяють розробникам бачити, що робить кожен контейнер.

Цікавитеся логами Docker Compose? Ви в потрібному місці. Ця стаття розповість основи логів Docker Compose та охопить більш складні деталі. Дізнайтеся, як отримати максимум користі від Docker Compose для ваших проектів.

Важливість логів Docker Compose

Представте розробника, який запускає програму за допомогою Docker, але не налаштовує логи Docker. Спочатку все виглядає добре. Але незабаром користувачі натикаються на помилки, і програма уповільнюється. Без логів Docker розробник не може бачити, що пішло не так всередині контейнерів Docker. Логи Docker Compose — це детальний запис цих контейнерів. Вони записують кожну деталь того, що відбувається, що важливо для пошуку та виправлення проблем пізніше.

Як розробник чи системний адміністратор, ви повинні розуміти, що відбувається всередині багатомовних програм та між ними. Саме тут логи Docker Compose стають корисним інструментом. То чому ці логи необхідні?

  • Усунення помилок та налагодження

Перевіряйте логи Docker, коли програма працює неправильно або виникають помилки. Логи Docker — це перший ресурс, на який можна подивитися, щоб стежити проблему. Вивчаючи логи Docker, розробники можуть визначити кореневу причину та джерело проблем — чи то помилка в коді, неправильна конфігурація або проблеми з ресурсами.

  • Моніторинг стану програми

Регулярний моніторинг логів програми допомагає зрозуміти загальний стан сервісів. Логи можуть виявити ранні ознаки проблем, такі як повторювані помилки та повільні відповіді. Помічаючи ці закономірності рано, можна запобігти потенційним проблемам у майбутньому.

  • Аудит та відповідність

Для програм, які мають дотримуватися певних стандартів, логи Docker — це перший доказ того, що програма відповідає вимогам. Ці логи також відіграють важливу роль у моніторингу авторизованої та несанкціонованої діяльності.

  • Оптимізація

Логи — цінні ресурси для оптимізації програмного забезпечення, оскільки надають дані про продуктивність. Наприклад, розробники можуть виявити повільні запити, неефективні ділянки коду або недовикористані ресурси.

Створення рецепту Docker: розгортання веб-сервера

У цьому розділі ми разом створимо рецепт Docker. Спочатку потрібно щось розробити, щоб розпочати подорож із логами Docker Compose. Розгорнемо для цього веб-сервер. Щоб створити Dockerfile, просто запустіть nano Dockerfile у потрібній папці на VPS з таким вмістом і збережіть файл:

 

FROM nginx:alpine
RUN rm /usr/share/nginx/html/index.html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Отже, що робить кожна лінія цього коду?

  • Починаємо з легкої базової образки, nginx:alpine.
  • Далі видаляємо стандартну сторінку привітання Nginx.
  • Потім переконуємося, що веб-сервер слухає на порту 80.
  • Нарешті запускаємо сервер Nginx за допомогою CMD.

Тепер наш файл Docker готовий, переходимо до наступного кроку — створення файла Docker Compose. Ось структура docker-compose.yml файл:

version: '3.8'
services:
web:
build: .
ports:
- "8080:80"
volumes:
- ./index.html:/usr/share/nginx/html/index.html

Розберемо його детально, щоб зрозуміти кожну частину:

  • Ми використовуємо версію 3.8.
  • У наступному рядку називаємо наш сервісweb“.
  • Потім інструюємо Docker збудувати наш веб-сервер з поточної папки.
  • Прив'язуємо порт 8080 на хості до порту 80 в контейнері, щоб веб-сервер міг встановити з'єднання.
  • Нарешті конфігурація volumes мапує index.html з диску хоста в контейнер. Потім можете створити index.html файл з будь-яким вмістом і помістити його туди, де Dockerfile та docker-compose.yml файли існують.

Тепер запускаємо наш контейнер Docker через Docker Compose. Просто виконуємо docker-compose up.

запустити контейнер Docker через Docker Compose

Коли виконаєте docker-compose up команду, Docker завантажить потрібні образи з інтернету та налаштує їх відповідно до наших файлів конфігурації.

Щоб перевірити, чи працює наш веб-сервер, відкрийте браузер, введіть IP-адресу VPS і запитайте доступ до порту 8080.

сторінка в контейнері

На заметку: можете використати docker-compose up -d щоб запустити контейнер у фоновому режимі.

Доступ до логів за допомогою Docker Compose

Тепер наш веб-сервер працює. Він уже генерує логи та зберігає цю інформацію для подальшого використання. Доступ до логів docker compose критично важливий для діагностики та моніторингу. Але як їх читати? На допомогу приходить журнали docker-compose команда. Переконайтеся, що ви в папці з конфігурацією, і виконайте цю команду.

Доступ до логів за допомогою Docker Compose

Іноді потрібно бачити логи в реальному часі під час їх генерування. Просто додайте -f в кінець попередньої команди та виконайте docker-compose logs -f.

Доступ до логів за допомогою Docker Compose

Деякі додатки на основі Docker можуть не надавати часові мітки в логах. У цьому випадку можете використати docker-compose logs -t додати записаний час для кожного рядка логу.

Доступ до логів за допомогою Docker Compose

Docker Логи можуть також відображати найновіші записи. Для цього використовуйте docker-compose logs –tail 10 щоб переглянути останні 10 записів логу. Docker композує логи tail, і так само docker logs tail особливо корисний, коли потрібно швидко перевірити недавну активність без прокручування всієї історії логу.

перегляд логів з docker compose

Основне призначення Docker Compose — створювати додатки з кількома контейнерами. Тому вам може знадобитися читати конкретні логи для потрібного сервісу. Для цього використовуйте docker-compose logs -f SERVICEI don't see English text to translate in your message. You've provided the instruction "remembering to replace" but there's no complete source text. Please provide the English UI label or phrase you'd like me to translate to Ukrainian, and I'll translate it following the rules you've outlined. SERVICE замість цього підставте фактичну назву сервісу.

перегляд логів з docker

Логування Docker

Екосистема Docker може ставати складнішою для конвергентних додатків, особливо у великих середовищах. Як ми вже знаємо, кожен контейнер генерує логи. Тому механізм, названий Logging Driver, відповідає за отримання, доставку та зберігання логів. За замовчуванням Docker використовує JSON файли для Logging Driver, але також підтримує різні інші драйвери, кожен з яких має свої переваги та недоліки.

Всі згідні, що логи критично важливі в різних сферах, включаючи усунення неполадок і підвищення продуктивності системи. Нижче ми розглянемо два основних аспекти використання логів контейнера:

  • Моніторинг: Основне призначення логів — моніторинг. Вони загалом показують загальний стан наших контейнеризованих додатків.
  • Усунення несправностей: У разі виникнення проблем логи допомагають нам виявити глюки додатку.

Оскільки docker logs та docker compose logs постійно генеруються, вони можуть заповнити весь VPS сховище. Тому нам потрібна стратегія управління місцем на диску, яка називається Log Rotation Policy. Щоб створити та використовувати цю політику, повертайтеся до docker-compose.yml файлу та відкрийте його. Потім додайте розділ логування з конфігурацією нижче:

version: '3.8'
services:
web:
build: .
ports:
- "8080:80"
volumes:
- ./index.htm:/usr/share/nginx/html/index.htm
logging:
driver: json-file
options:
max-size: "200k"
max-file: "10"

Ви можете постійно коригувати max-size та max-file відповідно до ваших потреб.

Моделі передачі логів Docker

Інженери можуть вибрати іншу модель логування в більш складних середовищах, ніж драйвери JSON за замовчуванням, такі як Syslog, fluentd та інші. Однак важливо пам'ятати, що драйвер JSON-file підходить для більшості сценаріїв логування, і можливо, не буде потреби відхилятися від режиму за замовчуванням.

Залежно від архітектури вашого додатку або організаційних вимог, ви можете бути змушені використовувати рішення централізованого логування, відомі як Log Aggregators. Ці сервіси, включаючи Elasticsearch, Logstash, Kibana тощо, призначені для отримання логів з різних джерел і консолідації, зберігання та аналізу їх в одному центральному місцезнаходженні.

І навпаки, ви повинні зберігати свої логи, використовуючи більш економічні рішення для зберігання. Розглядайте сценарій, коли ваш VPS використовує високошвидкісне та дороге сховище. Може бути неекономічно використовувати такі преміум-ресурси для зберігання логів, які вам можуть знадобитися лише для подальшого довідування.

Доступні численні моделі логування, кожна з яких має переваги та недоліки. Важливо ретельно оцінити кожну модель і вибрати одну на основі ваших конкретних потреб.

Хостинг Linux VPS

Отримайте економний або преміум Linux VPS для хостингу сайту чи віддаленого робочого столу за найнижчою ціною. VPS на базі Linux KVM для підвищеної ефективності, потужне залізо та сховище NVMe SSD для максимальної швидкості.

Докладніше

Висновок

Розуміння логів Docker Compose критично важливе. Вони допомагають керувати та налагоджувати ваші Docker додатки як слід. Навичка доступу та моніторингу цих логів покращує вирішення проблем та підвищує продуктивність і безпеку вашого додатку. Незалежно від того, розробляєте ви чи адмініструєте системи, використання логів Docker Compose є обов'язковим. Це забезпечує ефективне управління вашими контейнерами.

Часто задавані питання

Як фільтрувати логи Docker Compose за часом?

Docker Compose не пропонує прямого способу фільтрувати логи за часом. Однак ви можете фільтрувати логи, передавши їх через grep для пошуку за шаблоном. Наприклад, ви можете використовувати: docker-compose logs | grep "2023-04-06", замінивши "2023-04-06" на конкретну дату або часовий шаблон, який ви шукаєте.

Як зупинити контейнери, запущені за допомогою Docker Compose?

Перейдіть до каталогу, що містить файл docker-compose.yml, і виконайте команду docker-compose down.

Як вручну видалити файли логів?

Замість налаштування ротації логів у файлі docker-compose.yml ви можете вручну видалити файли логів Docker JSON з /var/lib/docker/containers/<container_id>/. Перед цим визначте ID контейнера Docker командою docker ps -a.

Чи можна переглядати логи Docker у реальному часі? 

Так, можете. Для цього використовуйте команду docker logs з опцією -f або --follow. Вона буде виводити логи Docker в реальному часі.

Поділитися

Ще з блогу

Читайте далі.

Металевий контейнер під куполом із неонової бірюзової сітки, з назвою статті та логотипом Cloudzy на темно-синьому тлі.
Інструменти для розробників і DevOps

Головні помилки у безпеці Docker, яких варто уникати у 2026 році

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

Рекса СайрусРекса Сайрус Читання: 15 хв
Тривимірна структура з блакитних кубів, що символізує контейнери Docker, поряд із текстом «Portainer vs Yacht: який UI для Docker обрати» та логотипом Cloudzy.
Інструменти для розробників і DevOps

Portainer vs Yacht: який UI для Docker обрати у 2026 році?

Керування контейнерами Docker через CLI добре працює для простих конфігурацій, але погано масштабується. Зі збільшенням кількості контейнерів відстежувати стани, логи та оновлення вручну стає дедалі складніше

Рекса СайрусРекса Сайрус Читання за 13 хвилин
Інструменти безперервної інтеграції
Інструменти для розробників і DevOps

Найкращі CI/CD-інструменти для оптимізації DevOps-процесів у 2026 році

 Розробка програмного забезпечення змінюється швидше, ніж будь-коли. Щоб не відставати від цього темпу, варто впроваджувати методології DevOps та Agile

Ада ЛавгудАда Лавгуд 11 хв читання

Готові до розгортання? З $2.48/міс.

Незалежна хмара з 2008 року. AMD EPYC, NVMe, 40 Gbps. Повернення коштів протягом 14 днів.