# Сеть (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](http://bobrobotirk.ru/uploads/images/gallery/2025-03/scaled-1680-/docker-networks-0.JPG)](http://bobrobotirk.ru/uploads/images/gallery/2025-03/docker-networks-0.JPG) Один порт может занимать только один контейнер. Взаимодействие контейнеров внутри хоста. **Multi-host overlay networks** Для взаимодействия контейнеров внутри виртуальной сети нескольких хостов. Могут быть расположены на разных нодах swarm. Сеть второго уровня, распределяющаяся по нужным нодам с dns сервисом и распределением нагрузки. **Plugging into existing VLANs** Для прямого подключения к сетевому интерфейсу соответственно с независимым адресом. Необходим promiscuous mode на интерфейсе хоста (неразборчивый режим). ipvlan с возможностью независимого адреса в пределах диапазона сетевой карты хоста заработал ``` 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 напрямую не заработал. Из интернетов: ``` sudo ip link add mymacvlan link enp0s3 type macvlan mode bridge sudo ip addr add 192.168.1.99/24 dev mymacvlan sudo ip link set mymacvlan up ```