JavaRush /Курсы /Модуль 2: Fullstack /Создание и управление сетями

Создание и управление сетями

Модуль 2: Fullstack
15 уровень , 1 лекция
Открыта

2.1 Основные команды docker network

Сети в Docker позволяют контейнерам взаимодействовать друг с другом и с внешними сетями. Команды docker network предоставляют гибкие возможности для создания, настройки и управления сетями, обеспечивая изоляцию и контроль над сетевым взаимодействием контейнеров. В этой лекции мы подробно рассмотрим команды docker network и их использование для управления сетями.

Основные команды docker network:

  1. docker network create
  2. docker network ls
  3. docker network inspect
  4. docker network connect
  5. docker network disconnect
  6. docker network rm

Создание сети: команда docker network create

Команда docker network create используется для создания новых сетей. Вы можете создать сети с различными драйверами, такими как bridge, host, overlay и macvlan.

Пример создания сети с драйвером bridge

Terminal


docker network create --driver bridge my_bridge_network 

Пример создания сети с драйвером overlay

Terminal


docker network create --driver overlay my_overlay_network 

Пример создания сети с драйвером macvlan

Terminal

docker network create --driver macvlan \
  --subnet=192.168.1.0/24   \
  --gateway=192.168.1.1 \
  -o parent=eth0 my_macvlan_network

2.2 Команды работы с сетью

1. Просмотр доступных сетей: команда docker network ls

Команда docker network ls отображает список всех сетей, созданных в Docker.

Terminal


docker network ls 

Вывод команды будет выглядеть следующим образом:

Terminal


NETWORK ID          NAME                DRIVER              SCOPE
0e7e2d58fe94        bridge              bridge              local
9c84fdfc69ee        host                host                local
71cfb6a79d9e        none                null                local

2. Просмотр информации о сети: команда docker network inspect

Команда docker network inspect позволяет получить детальную информацию о конкретной сети, включая подключенные контейнеры, настройки подсети и шлюза.

Пример использования:

Terminal


docker network inspect my_bridge_network 

Вывод команды будет содержать информацию о сети в формате JSON:

JSON

[
    {
        "Name": "my_bridge_network",
        "Id": "0e7e2d58fe94",
        "Created": "2021-01-01T00:00:00.000000000Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Containers": {
            "container_id": {
                "Name": "my_container",
                "EndpointID": "6c52f8c75c1e",
                "MacAddress": "02:42:ac:11:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

3. Подключение контейнера к сети: команда docker network connect

Команда docker network connect используется для подключения уже запущенного контейнера к существующей сети.

Пример использования:

Terminal


docker network connect my_bridge_network my_container 

4. Отключение контейнера от сети: команда docker network disconnect

Команда docker network disconnect используется для отключения контейнера от сети.

Пример использования:

Terminal


docker network disconnect my_bridge_network my_container 

5. Удаление сети: команда docker network rm

Команда docker network rm используется для удаления сети. Обратите внимание, что сеть можно удалить только после отключения всех подключенных к ней контейнеров.

Пример использования:

Terminal


docker network rm my_bridge_network 

2.3 Примеры команд docker network

Примеры использования команд docker network

Пример 1: Создание и использование bridge сети

Создание сети:

Terminal

docker network create --driver bridge my_bridge_network 

Запуск контейнеров и подключение их к сети:

Terminal

docker run -d --name container1 --network my_bridge_network nginx

docker run -d --name container2 --network my_bridge_network redis 

Проверка сети:

Terminal

docker network inspect my_bridge_network 

Вывод команды docker network inspect будет содержать детальную информацию о сети в формате JSON. Чтобы сделать вывод более читаемым, можно использовать утилиту jq:

Terminal

docker network inspect my_bridge_network | jq

Это удобно для фильтрации и структурированного просмотра данных о сети, таких как подключённые контейнеры, их IP-адреса и настройки подсети.

Пример 2: Подключение и отключение контейнеров

Запуск контейнера:

Terminal

docker run -d --name my_container nginx 

Подключение контейнера к сети:

Terminal

docker network connect my_bridge_network my_container 

Отключение контейнера от сети:

Terminal

docker network disconnect my_bridge_network my_container 
3
Задача
Модуль 2: Fullstack, 15 уровень, 1 лекция
Недоступна
Создание bridge-сети
Создание bridge-сети
3
Задача
Модуль 2: Fullstack, 15 уровень, 1 лекция
Недоступна
Подключение к существующей сети
Подключение к существующей сети
3
Задача
Модуль 2: Fullstack, 15 уровень, 1 лекция
Недоступна
Отключение контейнера от сети
Отключение контейнера от сети
3
Задача
Модуль 2: Fullstack, 15 уровень, 1 лекция
Недоступна
Удаление сети
Удаление сети
Комментарии (1)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Анастасия Уровень 47
22 декабря 2025
Интересно. В теме затрагивается, что можно использовать утилиту jq, но то, что её надо устанавливать дополнительно - ни слова об этом...