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

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

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

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

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

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

Отже, вам цікаво про Docker Compose Logs? Ви в правильному місці. У цьому блозі пояснюються основи журналів Docker Compose і розкриваються більш складні деталі. Дізнайтеся, як максимально використовувати Docker Compose для своїх проектів.

Важливість журналів створення Docker

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

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

  • Усунення несправностей і налагодження

Перевірте журнали докерів, якщо програма не працює належним чином або виявляє помилки. Журнали 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:альпійський.
  • Далі ми очищаємо стандартну сторінку привітання Nginx.
  • Потім ми переконаємося, що веб-сервер прослуховує порт 80.
  • Нарешті, ми запускаємо сервер Nginx за допомогою CMD.

Тепер наш Dockerfile готовий, ми переходимо до наступного кроку, який створює файл 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.
  • У наступному рядку ми називаємо наш сервіс «Інтернет“.
  • Потім ми наказуємо Docker створити наш веб-сервер із поточної папки.
  • Ми зв’язуємо порт 8080 на нашому хості з портом 80 у нашому контейнері, щоб наш веб-сервер міг встановити з’єднання.
  • Нарешті, карти конфігурації томів 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

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

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

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

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

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

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

Основною метою використання Docker Compose є створення багатоконтейнерних програм. Тому вам може знадобитися прочитати певні журнали для потрібної служби. Для цього використовуйте docker-compose logs -f СЕРВІС, пам'ятаючи про заміну СЕРВІС з вашою фактичною назвою служби.

доступ до журналів за допомогою докера

Логування Docker

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

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

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

Оскільки журнали докерів і журнали створення докерів постійно генеруються, вони можуть заповнити все сховище VPS. Тому нам потрібна стратегія керування дисковим простором, яка називається політикою ротації журналу. Щоб створити та використовувати цю політику, поверніться до 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-файл відповідно до ваших потреб.

Моделі доставки журналів Docker

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

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

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

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

Linux VPS хостинг

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

Детальніше

Висновок

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

FAQ

Як я можу фільтрувати журнали 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>/. Перш ніж це зробити, ви повинні ідентифікувати ідентифікатор контейнера Docker за допомогою docker ps -a.

Чи можете ви стежити за журналами Docker? 

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

Поділіться

Більше з блогу

Продовжуйте читати.

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

Найпопулярніші помилки безпеки Docker, яких слід уникати у 2026 році

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

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

Portainer проти Yacht: який UI Docker вибрати у 2026 році?

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

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

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

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

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

Готові до розгортання? Від $2,48/міс.

Незалежна хмара, з 2008 року. AMD EPYC, NVMe, 40 Гбіт/с. 14-денне повернення грошей.