В трех местах докер будет генерировать сетевые подсети.
- Мост по умолчанию
- Пользовательские мостовые сети
- Рой режим сгенерированных оверлейных сетей
Для моста по умолчанию (называемого «мост») вы можете указать BIP (я полагаю, что это IP-адрес моста; убедитесь, что это IP-адрес хоста, а не сетевой IP-адрес ) в daemon.json
файле. А для созданных пользователем мостовых сетей вы можете определить пул подсетей для выбора (при условии, что пользователь не указывает подсеть вручную). Для этих двух ваш /etc/docker/daemon.json
будет выглядеть так:
{
"bip": "10.200.0.1/24",
"default-address-pools":[
{"base":"10.201.0.0/16","size":24},
{"base":"10.202.0.0/16","size":24}
]
}
Каждый параметр пула адресов выше определяет диапазон CIDR и размер подсетей, которые должны быть выделены из этого диапазона. Таким образом, приведенное выше определяет два диапазона класса B, которые выделены как сети класса C (/ 24). Вам нужно как минимум 18.06 для пулов адресов по умолчанию. Вам нужно будет перезагрузить демон docker для применения этого изменения (systemctl reload docker
). И это изменение приведет только к изменению только что созданных пользовательских сетей, поэтому вам нужно будет остановить контейнеры и удалить существующие сети в неправильном диапазоне.
В 18.09 Docker добавил возможность указывать диапазон адресов для слитого режима, создаваемого оверлейными сетями. Это можно сделать только во время создания роя прямо сейчас, надеюсь, что это будет обновлено в будущем, чтобы можно docker swarm update
было настроить эти пулы:
$ docker swarm init \
--default-addr-pool 10.202.0.0/16 \
--default-addr-pool 10.203.0.0/16 \
--default-addr-pool-mask-length 24