Из-за проблем с пленными порталами и диапазоном IP-адресов по умолчанию я пытаюсь заставить Docker использовать диапазон 198.18.0.0 вместо 172.17.0.0, что вступает в противоречие с пленными порталами, используемыми в поездах, где я живу.
Следуя документации , я создал /etc/docker/daemon.json
и вставил в нее следующее:
{
"bip":"198.18.0.0/16"
}
Это сработало для docker0, но, похоже, не повлияло ни на одну из других сетей, и при использовании docker compose первая созданная сеть - 172.17.0.0, которая воссоздает конфликт.
Что я могу сделать, чтобы изменить подсеть по умолчанию для всех сетей докеров (желательно без указания моего настраиваемого диапазона IP-адресов в каждом файле компоновки)?
источник
В трех местах докер будет генерировать сетевые подсети.
Для моста по умолчанию (называемого «мост») вы можете указать BIP (я полагаю, что это IP-адрес моста; убедитесь, что это IP-адрес хоста, а не сетевой IP-адрес ) в
daemon.json
файле. А для созданных пользователем мостовых сетей вы можете определить пул подсетей для выбора (при условии, что пользователь не указывает подсеть вручную). Для этих двух ваш/etc/docker/daemon.json
будет выглядеть так:Каждый параметр пула адресов выше определяет диапазон CIDR и размер подсетей, которые должны быть выделены из этого диапазона. Таким образом, приведенное выше определяет два диапазона класса B, которые выделены как сети класса C (/ 24). Вам нужно как минимум 18.06 для пулов адресов по умолчанию. Вам нужно будет перезагрузить демон docker для применения этого изменения (
systemctl reload docker
). И это изменение приведет только к изменению только что созданных пользовательских сетей, поэтому вам нужно будет остановить контейнеры и удалить существующие сети в неправильном диапазоне.В 18.09 Docker добавил возможность указывать диапазон адресов для слитого режима, создаваемого оверлейными сетями. Это можно сделать только во время создания роя прямо сейчас, надеюсь, что это будет обновлено в будущем, чтобы можно
docker swarm update
было настроить эти пулы:источник
bip
опция в графическом интерфейсе «Настройки / Настройки». Потому чтоdefault-address-pools
вы можете редактировать daemon.json вручную в том же графическом интерфейсе, а для рояdefault-addr-pool
вы все равно изменяете их с помощьюinit
команды.Сконфигурируйте мостовую сеть по умолчанию : «… Чтобы настроить мостовую сеть по умолчанию, вы указываете опции в daemon.json. Вот пример daemon.json с несколькими указанными опциями. Укажите только те настройки, которые нужно настроить.…»
С помощью compose: Укажите пользовательские сети : "... Вместо того, чтобы просто использовать сеть приложений по умолчанию, вы можете указать свои собственные сети с помощью ключа сетей верхнего уровня. Это позволяет создавать более сложные топологии и задавать пользовательские сетевые драйверы и параметры. Вы также можете используйте его для подключения сервисов к внешним сетям, которые не управляются Compose.… »
источник
Это может быть немного жестоко, но я просто делаю,
sudo ifconfig docker0 down
чтобы выключить интерфейс, который конфликтует с Wi-Fi, который я пытаюсь использовать.источник