Проверка пользовательской сети с использованием Go-шаблона
На этом этапе вы узнаете, как использовать Go-шаблоны с командой docker network inspect
для извлечения определенной информации из конфигурации сети. Это полезно, когда вам нужны только определенные детали и вы не хотите разбирать весь JSON-вывод.
Флаг -f
или --format
позволяет указать Go-шаблон. Шаблон использует синтаксис Go-шаблонов для доступа к полям в JSON-выводе.
Предположим, вы хотите увидеть только идентификатор и драйвер сети. Вы можете использовать следующий шаблон: {{.Id}} {{.Driver}}
.
Выполните следующую команду, чтобы проверить сеть my-custom-network
и отформатировать вывод с использованием этого шаблона:
docker network inspect -f '{{.Id}} {{.Driver}}' my-custom-network
Выводом будет идентификатор сети, за которым следует имя драйвера, разделенные пробелом.
Вы также можете получить доступ к вложенным полям. Например, чтобы получить подсеть из конфигурации IPAM, вы можете использовать шаблон {{.IPAM.Config}}
. Поскольку IPAM.Config
представляет собой список, вам может потребоваться пройти по нему в цикле или получить доступ к определенному элементу, если есть несколько конфигураций. Для простоты предположим, что есть только одна конфигурация, и получим доступ к полю Subnet
в первом элементе списка Config
: {{(index .IPAM.Config 0).Subnet}}
.
Попробуем проверить сеть и отобразить имя сети и подсеть:
docker network inspect -f 'Name: {{.Name}}, Subnet: {{(index .IPAM.Config 0).Subnet}}' my-custom-network
Эта команда выведет имя сети и ее подсеть в более удобочитаемом формате.
Использование Go-шаблонов представляет собой мощный способ настройки вывода команд Docker и извлечения именно той информации, которая вам нужна.