Хотите знать, что делают приложения 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, просто запустите нано Dockerfile в нужную папку на вашем VPS со следующим содержимым и сохраните ее:
FROM nginx:alpine RUN rm /usr/share/nginx/html/index.html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
Итак, что делает каждая строка этого кода?
- Начинаем с легкой основы, nginx: альпийский.
- Далее мы очищаем страницу приветствия Nginx по умолчанию.
- Затем мы убеждаемся, что веб-сервер прослушивает порт. 80.
- Наконец, мы запускаем сервер Nginx с помощью КМД.
Теперь наш 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 файл с любым содержимым и поместите его туда, где Докерфайл и docker-compose.yml файлы существуют.
Теперь пришло время запустить наш Docker-контейнер с помощью Docker Compose. Просто мы бежим докер-составить.

Как только вы запустите докер-составить Команда Docker загрузит необходимые изображения из Интернета и настроит их в соответствии с инструкциями в наших файлах конфигурации.
Чтобы проверить, работает ли наш веб-сервер, откройте веб-браузер, введите IP-адрес вашего VPS и запросите доступ к порту 8080.

В качестве примечания вы можете использовать докер-составить -d для запуска контейнера в фоновом режиме.
Доступ к журналам с помощью Docker Compose
Теперь наш веб-сервер готов, запущен и работает. Он уже генерирует журналы и сохраняет эту информацию для дальнейшего использования. Доступ к журналам создания Docker необходим для устранения неполадок и мониторинга. Но как мы можем прочитать эти журналы? Вот где docker-compose журналы пригодится. Убедитесь, что вы находитесь в папке, где существует конфигурация, и запустите эту команду.

Иногда вам может потребоваться просмотреть живую версию журналов по мере их создания. Просто добавьте -f в конце предыдущей команды и запустите журналы docker-compose -f.

Некоторые приложения на базе Docker могут не предоставлять вам временные метки в своих журналах. Поэтому вы можете использовать docker-compose журналы -t добавить записанное время для каждой строки журнала.

Журналы Docker также могут отображать самые последние записи. Чтобы добиться этого, используйте журналы docker-compose –tail 10 для просмотра последних 10 записей журнала. Docker формирует хвост журнала, и аналогичным образом хвост журнала docker особенно полезен, когда вы хотите быстро проверить недавнюю активность, не прокручивая всю историю журналов.

Основная цель использования Docker Compose — создание многоконтейнерных приложений. Поэтому вам может потребоваться прочитать определенные журналы для нужной службы. Для этого используйте docker-compose logs -f СЕРВИС, не забывая заменить УСЛУГА с вашим фактическим названием службы.

Журналирование Docker
Экосистема Docker может стать более сложной для конвергентных приложений, особенно в больших средах. Как мы уже знаем, каждый контейнер генерирует логи. Таким образом, за получение, доставку и хранение журналов отвечает механизм, известный как драйвер журналирования. По умолчанию Docker использует файлы JSON для драйвера ведения журнала, но он также поддерживает различные другие драйверы, каждый из которых имеет свои плюсы и минусы.
Все согласны с тем, что журналы имеют решающее значение в различных областях, включая устранение неполадок и повышение производительности системы. Ниже мы рассмотрим два основных аспекта использования журналов контейнера:
- Мониторинг: Основная цель журналов — мониторинг. Обычно они показывают общее состояние наших контейнерных приложений.
- Поиск неисправностей: В случае возникновения проблем журналы помогают нам обнаружить сбои в работе приложений.
Поскольку журналы Docker и журналы создания Docker генерируются постоянно, они могут заполнить все хранилище 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"
Вы можете постоянно корректировать максимальный размер и макс-файл в соответствии с вашими потребностями.
Модели доставки журналов Docker
Инженеры могут выбрать другую модель ведения журнала в более продвинутых средах, чем стандартные драйверы JSON, такие как Syslog, fluentd и другие. Однако важно помнить, что драйвер JSON-файла подходит для большинства сценариев ведения журнала, и, возможно, нет необходимости отклоняться от режима по умолчанию.
В зависимости от архитектуры вашего приложения или организационных требований вы можете быть вынуждены использовать решения для централизованного ведения журналов, известные как агрегаторы журналов. Эти услуги, в том числе Эластичный поиск, Logstash, Kibana и т. д. предназначены для получения логов из различных источников и их консолидации, хранения и анализа в одном центральном месте.
И наоборот, вам следует хранить журналы, используя более экономичные решения для хранения. Рассмотрим сценарий, в котором ваш VPS использует высокоскоростное и дорогое хранилище; использование таких ресурсов премиум-класса для хранения журналов, которые могут понадобиться вам только для справки в будущем, может оказаться неэкономичным.
Доступно множество моделей регистрации, каждая из которых имеет свои преимущества и недостатки. Очень важно тщательно оценить каждую модель и выбрать ту, которая соответствует вашим конкретным потребностям.
Приобретите Linux VPS эконом- или премиум-класса для размещения вашего веб-сайта или удаленного рабочего стола по самой низкой цене. VPS работает на Linux KVM для повышения эффективности и работает на мощном оборудовании с SSD-накопителем NVMe для повышения скорости.
Читать далееЗаключение
Понимание журналов Docker Compose является ключевым моментом. Они помогают хорошо управлять и отлаживать ваши приложения Docker. Научившись получать доступ к этим журналам и отслеживать их, вы улучшите качество решения проблем и повысите производительность и безопасность вашего приложения. Независимо от того, разрабатываете или администрируете системы, использование журналов Docker Compose имеет важное значение. Они следят за тем, чтобы ваше управление контейнерами было эффективным.
Часто задаваемые вопросы
Как я могу фильтровать журналы Docker Compose по времени?
Docker Compose не предлагает прямого метода фильтрации журналов по времени. Однако вы можете фильтровать журналы, передавая их через grep для сопоставления с образцом. Например, вы можете использовать: журналы docker-compose | 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.