Обзор сетей Docker

Основные команды для работы с сетями
- network ls — список всех сетей
- docker network rm $(docker network ls -q) — удалить все сети
- docker network inspect bridge — исследовать сеть bridge
- docker network create — создать сеть (по умолчанию тип bridge)
- docker network connect NETWORK CONTAINER — подключить сеть к контейнеру
- docker network disconnect NETWORK CONTAINER — отключить сеть от контейнера
- docker network inspect x6d9725041b2 | NetworkID:"sdfsdfsfsdfsFDFFDFgb" — посмотреть ID сети
Работа с портами
- -p Хостовый порт:Порт в контейнере
- -p 9980:9980 — открыть порт
- -p 9980:9980 -p 1111:1111 — открыть два порта
- -p 0.0.0.0:9980:9980 — открыть порт только для IPv4
- -p 127.0.0.1:9980:9980 — доступ только с хостового компьютера
Настройка IPv6
Создать файл /etc/docker/daemon.json
с содержимым:
{ "ipv6": true, "fixed-cidr-v6": "2001:db8:1::/64" }
При создании сети использовать параметр --ipv6
.
Типы сетей и их настройка
Создание сети MACVLAN
- Включить режим promisc:
sudo ip link set eth0 promisc on
- На VirtualBox включить Promiscous Mode: Allow All
- Пример команды:
docker network create -d macvlan --subnet=192.168.10.0/24 --gateway=192.168.10.1 -o parent=eth0
Создание сети IPVLAN
- Клонирует MAC-адрес хостового интерфейса
- Пример команды:
docker network create -d ipvlan --subnet=192.168.0.0/24 --gateway=192.168.0.1
Запуск контейнера с определённой сетью
Пример команды:
docker run --network=ipvlan1 --ip=192.168.10.100 --name CONTAINER1 CONTAINERIMG