Введение
В этой лабораторной работе вы научитесь эффективно использовать команду docker context ls для управления и просмотра контекстов Docker. Контексты Docker (Docker contexts) необходимы для удобного переключения между различными демонами Docker, будь то локальные, удалённые или облачные решения.
Выполняя практические шаги, вы изучите, как вывести список всех доступных контекстов с подробной информацией, отфильтровать вывод для отображения только имён контекстов, а также форматировать вывод различными способами, включая JSON и использование пользовательских шаблонов. Это даст вам навыки для быстрой идентификации и понимания настроенных окружений Docker.
Вывести список всех контекстов 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, получая структурированные данные, пригодные для программной обработки.



