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

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

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

Введение

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

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


Skills Graph

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

Создание пользовательской сети Docker

На этом этапе вы узнаете, как создать пользовательскую сеть в Docker. По умолчанию Docker предоставляет несколько драйверов сетей, но создание пользовательской сети позволяет изолировать ваши контейнеры и контролировать их взаимодействие друг с другом.

Перед созданием сети проверим существующие сети в вашей системе с помощью команды docker network ls.

docker network ls

Вы должны увидеть несколько стандартных сетей, таких как bridge, host и none.

Теперь создадим новую пользовательскую сеть с именем my-custom-network с использованием драйвера bridge. Драйвер bridge является стандартным драйвером сети и подходит для большинства сценариев использования.

docker network create my-custom-network

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

Чтобы убедиться, что сеть успешно создана, выполните команду docker network ls еще раз.

docker network ls

Теперь вы должны увидеть my-custom-network в списке доступных сетей.

Проверка пользовательской сети в стандартном формате JSON

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

Чтобы проверить сеть my-custom-network, созданную на предыдущем этапе, используйте следующую команду:

docker network inspect my-custom-network

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

Вывод будет содержать такие поля, как:

  • Name: Имя сети (my-custom-network).
  • Id: Уникальный идентификатор сети.
  • Driver: Используемый драйвер сети (bridge).
  • Scope: Область действия сети (обычно local).
  • IPAM: Информация об управлении IP-адресами, включая подсеть и шлюз.
  • Containers: Список контейнеров, подключенных к этой сети (изначально пустой).

Понимание вывода команды docker network inspect является важным для отладки сетевых проблем и понимания того, как ваши контейнеры подключены.

Проверка пользовательской сети с использованием 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 и извлечения именно той информации, которая вам нужна.

Проверка пользовательской сети с расширенным выводом

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

Чтобы проверить сеть my-custom-network с расширенным выводом, используйте следующую команду:

docker network inspect -v my-custom-network

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

Например, при использовании драйвера bridge расширенный вывод может содержать детали о базовом мостовом интерфейсе на хост-системе, включая его MAC-адрес и IP-адрес. Также он может показать более подробную информацию о конфигурации IPAM.

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

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

Проверка нескольких сетей

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

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

Давайте проверим созданную вами сеть my-custom-network и стандартную сеть bridge.

docker network inspect my-custom-network bridge

Эта команда выведет конфигурацию в формате JSON для обеих сетей: my-custom-network и bridge. Вывод для каждой сети будет отдельным JSON-объектом.

Вы также можете сочетать проверку нескольких сетей с опциями форматирования, которые вы узнали на предыдущих этапах. Например, чтобы получить имя и драйвер обеих сетей с использованием шаблона Go:

docker network inspect -f 'Name: {{.Name}}, Driver: {{.Driver}}' my-custom-network bridge

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

Проверка нескольких сетей сразу может существенно упростить ваш рабочий процесс при управлении несколькими сетями в вашей среде Docker.

Итог

В этом практическом занятии вы узнали, как создать пользовательскую сеть Docker с помощью команды docker network create и проверить ее создание с помощью команды docker network ls. Затем вы изучили команду docker network inspect для просмотра подробных конфигураций сети.

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