Как использовать команду docker service inspect для просмотра деталей службы

DockerDockerBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

Кроме того, вы узнаете, как форматировать вывод команды docker service inspect с использованием параметров --pretty и --format для контроля уровня детализации и представления информации о службе.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") subgraph Lab Skills docker/ls -.-> lab-555225{{"Как использовать команду docker service inspect для просмотра деталей службы"}} docker/inspect -.-> lab-555225{{"Как использовать команду docker service inspect для просмотра деталей службы"}} docker/create -.-> lab-555225{{"Как использовать команду docker service inspect для просмотра деталей службы"}} end

Проверка службы по имени

На этом этапе вы узнаете, как проверить службу Docker по ее имени. Команда docker service inspect предоставляет подробную информацию о службе, включая ее конфигурацию, задачи и настройки сети.

Сначала создадим простую службу для проверки. Мы создадим службу с именем my-web-service с использованием образа nginx. Поскольку Docker Compose не предустановлен, мы будем использовать команду docker service create напрямую.

docker service create --name my-web-service nginx

Вы должны увидеть вывод, указывающий на то, что служба была создана. Docker загрузит образ nginx, если он еще не присутствует в вашей системе.

Теперь, когда служба создана, вы можете проверить ее по имени, используя команду docker service inspect, за которой следует имя службы.

docker service inspect my-web-service

Эта команда выведет большой JSON - объект, содержащий все детали о службе my-web-service. Этот вывод может быть довольно обширным, предоставляя глубокий взгляд на конфигурацию и состояние службы.

Проверка службы по идентификатору

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

Сначала получим идентификатор службы my-web-service, которую мы создали на предыдущем этапе. Вы можете использовать команду docker service ls для вывода списка всех запущенных служб и их идентификаторов.

docker service ls

В выводе будет отображена таблица с столбцами, такими как ID, NAME, MODE, REPLICAS и IMAGE. В столбце ID содержится уникальный идентификатор каждой службы. Скопируйте идентификатор для службы my-web-service. Это будет строка символов.

Теперь используйте команду docker service inspect, за которой следует скопированный идентификатор службы. Замените <SERVICE_ID> на фактический идентификатор.

docker service inspect <SERVICE_ID>

Вы увидите такой же подробный JSON - вывод, как при проверке по имени. Это показывает, что вы можете использовать как имя службы, так и ее идентификатор для получения подробной информации о проверке. Использование идентификатора часто является более точным, особенно в автоматических скриптах.

Форматирование вывода с использованием флага --pretty

На предыдущих этапах вы увидели, что стандартный вывод команды docker service inspect представляет собой большой JSON - объект. Хотя этот формат содержит полную информацию, для быстрого обзора он может быть сложно читаемым. Docker предоставляет флаг --pretty для вывода информации в более удобочитаемом формате.

Проверим службу my-web-service еще раз, на этот раз используя флаг --pretty.

docker service inspect --pretty my-web-service

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

Флаг --pretty является удобным способом получить сводку по деталям службы без необходимости разбирать полный JSON - вывод.

Форматирование вывода с использованием флага --format

В то время как флаг --pretty предоставляет удобочитаемую сводку, флаг --format позволяет вам точно контролировать формат вывода с использованием синтаксиса шаблонов Go. Это невероятно мощный инструмент для извлечения определенных частей информации или форматирования вывода для скриптов или отчетов.

Синтаксис шаблонов Go позволяет вам обращаться к полям в JSON - выводе команды inspect. Например, чтобы получить только идентификатор и имя службы, вы можете использовать строку формата, такую как {{.ID}} {{.Spec.Name}}.

Попробуем проверить службу my-web-service и отформатировать вывод так, чтобы показать только идентификатор и имя службы.

docker service inspect --format '{{.ID}} {{.Spec.Name}}' my-web-service

Вы должны увидеть вывод, похожий на следующий:

<SERVICE_ID> my-web-service

где <SERVICE_ID> - это фактический идентификатор вашей службы.

Вы можете обращаться к вложенным полям, используя точку. Например, чтобы получить имя образа, вы должны использовать {{.Spec.TaskTemplate.ContainerSpec.Image}}.

Попробуем другой пример, чтобы получить имя службы и используемый ею образ.

docker service inspect --format 'Service Name: {{.Spec.Name}}, Image: {{.Spec.TaskTemplate.ContainerSpec.Image}}' my-web-service

Вывод будет следующим:

Service Name: my-web-service, Image: nginx

Флаг --format очень гибкий и позволяет вам адаптировать вывод под свои конкретные нужды. Вы можете изучить полный JSON - вывод (без флагов --pretty или --format), чтобы понять структуру и определить поля, которые вы хотите извлечь.

Резюме

В этом практическом занятии вы узнали, как использовать команду docker service inspect для просмотра подробной информации о службах Docker. Вы практиковались в проверке службы по ее имени: сначала вы создали простую службу nginx с именем my-web-service с помощью команды docker service create, а затем использовали команду docker service inspect my-web-service для получения ее конфигурации и состояния в формате JSON.

Вы также узнали, как проверить службу с использованием ее уникального идентификатора. С помощью команды docker service ls вы нашли идентификатор службы и смогли использовать команду docker service inspect <SERVICE_ID> для получения той же подробной информации, тем самым продемонстрировав альтернативный метод проверки служб, который особенно полезен при написании скриптов или когда имена служб неоднозначны.