TL; DR
Проблема в том, что docker
/ docker-compose
не может найти подходящий диапазон адресов для назначения su bnet новой внутренней сети, поскольку VPN добавляет маршруты для всех IP-адресов.
Решения:
- вручную определить сеть и диапазон ее адресов в
docker-compose.yml
или использовать существующий => требует изменений во всех ваших docker-compose.yml
файлах, которые также могут стать труднопереносимыми из-за жестко заданных адресов. - start
docker
/ все ваши сервисы до VPN => вероятно, не во всех случаях - перенастройте конфигурацию маршрутизации вашей VPN, чтобы исключить диапазоны, которые будут использоваться docker =>, это усложнит вашу конфигурацию VPN и может привести к утечке трафика c, предназначенного для VPN, если сделано неправильно
Пояснение
По умолчанию docker-compose
устанавливает выделенный docker network
для каждого проекта , т.е. виртуальное мостовое устройство на хосте docker.
Чтобы назначить диапазон su bnet и адрес шлюза для сеть docker
пытается выбрать диапазон из пула возможных диапазонов. Он проверяет, не перекрывается ли выбранный диапазон с диапазоном / маршрутом, уже привязанным к подключенному сетевому устройству, чтобы предотвратить проблемы с конфликтующими диапазонами адресов, используемыми хостом.
С другой стороны, VPN может добавить свой собственный маршруты для перенаправления всего трафика c через туннель VPN. Из-за этого docker
не сможет найти "неиспользуемый" диапазон адресов для назначения новой сети.
Подробнее см. ответы на этот вопрос и соответствующий выпуск на GitHub