Сеть (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 |
Список бриджей.
|
Также есть опция поиска сервисов и балансировка входной нагрузки.
| Основная команда | Параметр | Описание |
| docker network | ls | Список сетей |
| docker inspect ИмяСети | Выводит информацию по указанной сети. bridge - сеть по умолчанию. | |
| docker network create | -d драйвер |
Создает сеть
|
| название сети | ||
| docker port ContName | Выводит map портов внутрь контейнера | |
| docker network prune | Удаляет неиспользуемые сети | |
| docker network rm | Название сети | Удаляет конкретную сеть |
Single-host bridge networks
Создается интерфейс на хосте docker.
Один порт может занимать только один контейнер. Взаимодействие контейнеров внутри хоста.
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напрямую не заработал. Из интернетов:
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