Skip to main content

Сеть (networking)

Docker поставляется со следующими сетевыми драйверами в рамках библиотеки libnetwork:

  • single-host bridge networks (bridge)
  • multi-host overlays (overlay)
  • options for plugging into existing VLANs (macvlan)

Для тестов нужно установить 

apt-get install bridge-utils

Docker регистрирует DNS сервис в пределах бриджа. Но в сети по умолчанию (docker0) DNS сервиса нет.

Команда Описание
brctl show

Список бриджей. 

sudo brctl show
bridge name     bridge id               STP enabled     interfaces
br-62694f46296d         8000.7ee73b5c2894       no
br-8af5ede4ffdc         8000.aee56ab6b984       no
br-96dd8dcd216d         8000.5a64a8825202       no
docker0         8000.f220300c62b1       no
  
  
  
  
  
 

Также есть опция поиска сервисов и балансировка входной нагрузки.

Основная команда Параметр Описание
docker network  ls Список сетей
docker inspect ИмяСети   Выводит информацию по указанной сети. bridge - сеть по умолчанию.
docker network create   -d драйвер 

 Создает сеть 

docker network create -d bridge localnet
   название сети  
 docker port ContName   Выводит map портов внутрь контейнера 
docker network prune   Удаляет неиспользуемые сети
docker network rm Название сети Удаляет конкретную сеть

Single-host bridge networks

Создается интерфейс на хосте docker. 

docker_networks_0.JPG

Один порт может занимать только один контейнер. Взаимодействие контейнеров внутри хоста.

Multi-host overlay networks

Для взаимодействия контейнеров внутри одвиртуальногй сети нескольких хостаов.

ЗpluggingPlugging into existing VLANs

Для прямого подключения к сетевому интерфейсу соответственно с независимым адресом. Необходим promiscuous mode на интерфейсе хоста (неразборчивый режим). 

ipvlan с возможностью независимого l2адреса в пределах диапазодна сетевой ключения)арты хоста заработал

services:
  condb:
    image: nginx
    networks:
      my_ipvlan:
        ipv4_address: 192.168.1.40

networks:
  my_ipvlan:
    driver: ipvlan
    driver_opts:
      parent: enp0s3
      ipvlan_mode: l2
    ipam:
      config:
        - subnet: 192.168.1.0/24
          gateway: 192.168.1.1

 

Дmacvlan напрямую не заработаля. macvlanИз интернетов: