Это архитектурная модель, разработанная Docker для управления сетями контейнеров. Она описывает, как создаются, управляются и взаимодействуют сетевые компоненты в Docker-контейнерах. CNM служит основой для организации сетей Docker и позволяет подключать контейнеры к различным сетевым средам, обеспечивая гибкость, масштабируемость и безопасность.
🚩Основные компоненты CNM
🟠Sandbox
Это изолированная среда, где настраиваются сетевые интерфейсы контейнера, такие как IP-адреса, маршруты и DNS. Что включает: veth-пара интерфейсов (виртуальный Ethernet): соединяет контейнер с внешней сетью. Конфигурации маршрутов и сетевых правил.
🟠Endpoint
Точка подключения контейнера к сети. Функции: Обеспечивает контейнеру связь с другими контейнерами или внешними сетями. Соединяет Sandbox с Network.
🟠Network
Логическая сущность, объединяющая Endpoints для обеспечения взаимодействия контейнеров. Типы сетей в Docker:
bridge: Локальная сеть, позволяющая контейнерам взаимодействовать на одном хосте.
host: Контейнеры используют сетевой стек хоста без изоляции.
none: Сеть отключена; контейнер полностью изолирован.
overlay: Распределенная сеть для связи контейнеров на разных хостах.
macvlan: Контейнеры получают прямой доступ к физической сети.
🚩Как это работает в Docker
Создается Sandbox, где настраиваются сетевые параметры контейнера.
Создается Endpoint, который подключает контейнер к выбранной сети.
Endpoint добавляется в Network, что позволяет контейнеру взаимодействовать с другими узлами.
🚩Плюсы
➕Гибкость
Легко подключать контейнеры к различным типам сетей.
➕Изоляция
Обеспечивает безопасность, изолируя сетевые пространства контейнеров.
➕Расширяемость
CNM поддерживает сторонние плагины для интеграции с другими сетевыми решениями (например, Calico, Flannel).
➕Управляемость
Позволяет контролировать настройки сети через команды Docker.
🚩Пример создания сети
1⃣Создание сети
docker network create my_bridge
2⃣Подключение контейнера к сети
docker run --network my_bridge -d nginx
Ставь 👍 и забирай 📚 Базу знаний