Сеть (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