Sobes.tech
Junior

Какво е модулът за мрежова контейнеризация в Docker?

sobes.tech AI

Отговор от AI

Модулът за мрежа на контейнера (Container Network Module, CNM) е спецификация на Docker, която определя модела на взаимодействие между контейнерите и външния свят. Той се състои от три основни примитива:

  • Sandbox: Мрежовият стек на контейнера, който съдържа неговите интерфейси, таблици за маршрутизация и DNS.
  • Endpoint: Точката за свързване на Sandbox към мрежата.
  • Network: Мрежовият сегмент, към който могат да се свързват Endpoints. Контейнерите в една и съща мрежа могат да комуникират помежду си.

CNM предоставя интерфейс за плъгини, който позволява на различни драйвери да реализират мрежови функции. Docker Engine управлява Sandbox-овете и Endpoints-ите, а мрежовите драйвери отговарят за създаването и конфигурирането на мрежите.

Примери за вградени драйвери за мрежа в Docker:

  • bridge: Създава NAT мрежа за контейнерите, които могат да комуникират помежду си и с външния свят чрез IP на хоста.
  • host: Контейнерът използва директно мрежовия стек на хоста.
  • none: Контейнерът няма мрежов интерфейс.
  • overlay: Създава разпределена мрежа между няколко Docker хоста за swarm услуги.

Пример за създаване на bridge мрежа:

docker network create my_bridge_network

Свързване на контейнер към тази мрежа:

docker run -d --network my_bridge_network nginx