2.1 Основные команды docker network
Сети в Docker позволяют контейнерам взаимодействовать друг с другом и с внешними сетями. Команды docker network предоставляют гибкие возможности для создания, настройки и управления сетями, обеспечивая изоляцию и контроль над сетевым взаимодействием контейнеров. В этой лекции мы подробно рассмотрим команды docker network и их использование для управления сетями.
Основные команды docker network:
- docker network create
- docker network ls
- docker network inspect
- docker network connect
- docker network disconnect
- docker network rm
Создание сети: команда docker network create
Команда docker network create используется для создания новых сетей. Вы можете создать сети с различными драйверами, такими как bridge, host, overlay и macvlan.
Пример создания сети с драйвером bridge
docker network create --driver bridge my_bridge_network
Пример создания сети с драйвером overlay
docker network create --driver overlay my_overlay_network
Пример создания сети с драйвером macvlan
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.
docker network ls
Вывод команды будет выглядеть следующим образом:
NETWORK ID NAME DRIVER SCOPE
0e7e2d58fe94 bridge bridge local
9c84fdfc69ee host host local
71cfb6a79d9e none null local
2. Просмотр информации о сети: команда docker network inspect
Команда docker network inspect позволяет получить детальную информацию о конкретной сети, включая подключенные контейнеры, настройки подсети и шлюза.
Пример использования:
docker network inspect my_bridge_network
Вывод команды будет содержать информацию о сети в формате 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 используется для подключения уже запущенного контейнера к существующей сети.
Пример использования:
docker network connect my_bridge_network my_container
4. Отключение контейнера от сети: команда docker network disconnect
Команда docker network disconnect используется для отключения контейнера от сети.
Пример использования:
docker network disconnect my_bridge_network my_container
5. Удаление сети: команда docker network rm
Команда docker network rm используется для удаления сети. Обратите внимание, что сеть можно удалить только после отключения всех подключенных к ней контейнеров.
Пример использования:
docker network rm my_bridge_network
2.3 Примеры команд docker network
Примеры использования команд docker network
Пример 1: Создание и использование bridge сети
Создание сети:
docker network create --driver bridge my_bridge_network
Запуск контейнеров и подключение их к сети:
docker run -d --name container1 --network my_bridge_network nginx
docker run -d --name container2 --network my_bridge_network redis
Проверка сети:
docker network inspect my_bridge_network
Вывод команды docker network inspect будет содержать детальную информацию о сети в формате JSON. Чтобы сделать вывод более читаемым, можно использовать утилиту jq:
docker network inspect my_bridge_network | jq
Это удобно для фильтрации и структурированного просмотра данных о сети, таких как подключённые контейнеры, их IP-адреса и настройки подсети.
Пример 2: Подключение и отключение контейнеров
Запуск контейнера:
docker run -d --name my_container nginx
Подключение контейнера к сети:
docker network connect my_bridge_network my_container
Отключение контейнера от сети:
docker network disconnect my_bridge_network my_container
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ