Как использовать команду docker context ls для вывода списка контекстов

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

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

Введение

В этой лабораторной работе вы научитесь эффективно использовать команду docker context ls для управления и просмотра контекстов Docker. Контексты Docker (Docker contexts) необходимы для удобного переключения между различными демонами Docker, будь то локальные, удалённые или облачные решения.

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


Skills Graph

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

Список всех контекстов Docker

На этом шаге вы узнаете, как вывести список всех доступных контекстов Docker с помощью команды docker context ls. Контексты Docker (Docker contexts) позволяют легко переключаться между различными демонами Docker, независимо от того, работают они локально, на удалённой машине или в облачной среде.

Чтобы вывести список всех контекстов Docker, откройте терминал и выполните следующую команду:

docker context ls

Эта команда отобразит таблицу с информацией о каждом контексте Docker, включая его имя, описание, конечную точку (endpoint) и указание, является ли он текущим контекстом.

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

NAME                DESCRIPTION                               DOCKER ENDPOINT                                 KUBERNETES ENDPOINT   ORCHESTRATOR
default             Current DOCKER_HOST environment             unix:///var/run/docker.sock                     n/a                   swarm

Контекст default создаётся автоматически при установке Docker и указывает на локальный демон Docker.

Вывод только имён контекстов Docker

На предыдущем шаге вы вывели список всех контекстов Docker с подробной информацией. Иногда может потребоваться увидеть только названия контекстов. Этого можно добиться, используя флаг --format с командой docker context ls.

Флаг --format позволяет задать формат вывода с помощью пакета text/template языка Go. Для вывода только имён можно использовать шаблон {{.Name}}.

Выполните в терминале следующую команду:

docker context ls --format "{{.Name}}"

Эта команда выведет только названия контекстов Docker, по одному на строку.

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

default

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

Форматирование вывода списка контекстов Docker в JSON

Помимо вывода имён или стандартного табличного формата, вы также можете отформатировать вывод команды docker context ls в формате JSON. Это особенно полезно, когда требуется программная обработка информации о контекстах.

Для форматирования вывода в JSON используйте флаг --format со значением json.

Выполните в терминале следующую команду:

docker context ls --format json

Эта команда выведет массив JSON, где каждый элемент массива представляет собой контекст Docker.

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

[
  {
    "Name": "default",
    "Current": true,
    "Endpoint": "unix:///var/run/docker.sock",
    "Description": "Current DOCKER_HOST environment",
    "DockerEndpoint": "unix:///var/run/docker.sock",
    "KubernetesEndpoint": "",
    "Orchestrator": "swarm"
  }
]

JSON-вывод предоставляет структурированный способ доступа ко всем деталям каждого контекста Docker.

Форматирование вывода списка контекстов Docker с использованием пользовательского шаблона

В предыдущих шагах вы узнали, как вывести список всех контекстов, только их имена и отформатировать вывод в JSON. Флаг --format обладает широкими возможностями и позволяет определять пользовательские шаблоны вывода с использованием синтаксиса Go text/template.

Вы можете указать, какие поля отображать и как их форматировать. Например, давайте выведем имя контекста и его описание в пользовательском формате. Доступные поля для использования в шаблоне: Name, Description, DockerEndpoint, KubernetesEndpoint и Orchestrator.

Выполните в терминале следующую команду:

docker context ls --format "Context Name: {{.Name}}, Description: {{.Description}}"

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

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

Context Name: default, Description: Current DOCKER_HOST environment

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

Итоги

В этой лабораторной работе вы научились использовать команду docker context ls для вывода списка контекстов Docker. Вы начали с отображения всех доступных контекстов с подробной информацией, включая их имя, описание, конечную точку (endpoint) и оркестратор. Затем вы изучили, как выводить только имена контекстов с помощью флага --format "{{.Name}}", что полезно для быстрого просмотра или написания скриптов. В завершение вы узнали, как форматировать вывод в JSON с помощью флага --format json, получая структурированные данные, пригодные для программной обработки.