Назад | Перейти на главную страницу

Сеть Docker без IP-адреса на хосте

Я пытаюсь создать сеть 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.