Я пытаюсь создать сеть Docker, которая будет использовать существующий мост на хосте, но без настройки IP-адреса на этом мосту. Когда я бегу:
docker network create -o "com.docker.network.bridge.name=br0" testnet
Docker автоматически назначает IP-адрес хосту и всегда использует этот IP-адрес в качестве шлюза для других контейнеров.
Мне нужна сеть без IP-адреса на хосте и использование другого контейнера в качестве шлюза (этот контейнер подключен к нескольким сетям). У меня есть очень веские причины для такой настройки и запрета хосту напрямую маршрутизировать между этими сетями. Возможно ли это и как я могу этого добиться?
Заранее спасибо за вашу помощь,
Губка Боб
После просмотра исходного кода кажется невозможным сделать это с помощью bridge
сетевой драйвер. В createNetwork функция всегда пытается настроить IPv4, даже если мост уже существует. В setupBridgeIPv4 Функция устанавливает IPv4 на мосту и определяет этот IP как шлюз для сети.
Я решил свою проблему с помощью none
сетевой драйвер и использование трубопровод чтобы вручную прикрепить контейнеры к моему главному мосту. Недостатком этого решения является то, что контейнеры необходимо повторно присоединять к мостам каждый раз при их перезапуске, но это можно автоматизировать с помощью службы systemd, запускаемой после службы docker.