логотип PurpleSchool
логотип PurpleSchool

Как проверить состояние (status) Docker

Автор

Олег Марков

Введение

Docker стал неотъемлемой частью современного процесса разработки программного обеспечения. Возможность быстро разворачивать контейнеры, которые изолируют приложения и их зависимости, значительно облегчает управление средой разработки и ведение проектов. Однако для стабильного функционирования важно уметь проверять состояние Docker и вовремя обнаруживать любые проблемы. В этой статье я покажу вам, как это делается, используя простые команды и методы.

Проверка состояния Docker

Основные команды Docker

Начнем с основных команд, которые помогут вам оценить текущее состояние Docker и выявить возможные проблемы. Эти команды могут дать вам представление о состоянии всей системы, контейнеров и ресурсов.

Команда docker info

Команда docker info дает общий обзор системы Docker на вашем устройстве. Она выводит информацию о версии Docker, драйверах хранения, количестве контейнеров, запущенных в данный момент, и многом другом.

docker info

Ваш вывод будет содержать много полезной информации. Смотрите, вот что вы можете ожидать:

Containers: 5  // количество всех контейнеров
 Running: 3   // количество запущенных контейнеров
 Paused: 0    // количество приостановленных контейнеров
 Stopped: 2   // количество остановленных контейнеров
Images: 10    // количество загруженных образов
...

Обратите внимание, сколько контейнеров запущено или остановлено, а также есть ли приостановленные контейнеры. Это поможет вам понять общую нагрузку на вашу систему.

Команда docker ps

Эта команда показывает список всех контейнеров, которые в данный момент работают на вашем устройстве. Это важно для понимания того, какие приложения активны и нет ли среди них проблемных случаев.

docker ps

Результат будет примерно таким:

CONTAINER ID   IMAGE          COMMAND   CREATED        STATUS         PORTS     NAMES
4c01db0b339c   nginx:latest   "nginx"   7 minutes ago  Up 7 minutes   80/tcp    web_server

Теперь вы видите идентификатор контейнера, образ, который он использует, команду запуска, время создания, статус, открытые порты и имя. Это ключевая информация для управления текущими процессами.

Диагностика содержащихся внутри контейнеров

Команда docker stats

Если вам нужно понять, насколько загружены ваши контейнеры, вы можете использовать команду docker stats. Она выдает в реальном времени статистику по использованию ресурсов, таких как процессор и память.

docker stats

Здесь вы видите, какие именно ресурсы потребляют ваши контейнеры:

CONTAINER ID   NAME          CPU %   MEM USAGE / LIMIT   MEM %   NET I/O    BLOCK I/O
4c01db0b339c   web_server    0.15%   15.8MiB / 1.937GiB  0.80%   200kB / 0B 300kB / 0B

Изучая эти показатели, вы сможете понять, нужно ли увеличить объем выделяемых ресурсов или оптимизировать ваши приложения для уменьшения нагрузки.

Логи контейнеров с docker logs

Когда возникает необходимость узнать, почему контейнер работает некорректно или прекратил работу, вам пригодится команда docker logs. Она позволяет ознакомиться с журналом событий внутри контейнера.

docker logs <container_id>

Эта команда покажет вам все, что происходит внутри контейнера. Давайте посмотрим, как это может выглядеть:

2023-02-28T12:45:25.123Z info: Web server started
2023-02-28T12:47:15.456Z error: Failed to connect to database

Обратите внимание на сообщения об ошибках. Они могут оказаться ключевыми для понимания и исправления ситуации.

Проверка состояния Docker сервисов

Если вы пользуетесь Docker Swarm для оркестрации контейнеров, то иногда потребуется оценить состояние вашего кластера и его сервисов.

Статус с docker service ls

Вы можете посмотреть, какие сервисы работают в рамках вашего кластера:

docker service ls

И вот что вы увидите:

ID            NAME       MODE        REPLICAS  IMAGE
tued2ugjfsc   web        replicated  3/3       nginx:latest

Смотрите на количество реплик и статус каждого сервиса, чтобы оценить их работу.

Заключение

Проверка состояния Docker — это важный этап поддержки жизнеспособности и стабильности ваших приложений. Используя базовые команды, такие как docker info, docker ps, docker stats, и логи, вы всегда сможете быть в курсе текущего состояния вашей контейнерной инфраструктуры. Даже на начальном этапе изучения Docker эти инструменты помогут вам своевременно обнаруживать и устранять проблемы. Код, который я разместил в статье, сделает диагностику ваших приложений более прозрачной и управляемой. Продолжайте изучать Docker и совершенствоваться в его использовании, и ваша разработка приложений станет еще более гибкой и надежной.

Карта развития разработчика

Получите полную карту развития разработчика по всем направлениям: frontend, backend, devops, mobile