Я запускаю несколько служб в контейнерах docker для своей домашней лаборатории, и мне нужно, чтобы они были доступны с их собственных отдельных IP-адресов. Моя хост-система работает под управлением Debian "Bullseye".
Из документации Docker следует, что использование macvlan
сети в режиме моста кажется естественным, и способ по умолчанию работает у меня корректно.
Однако я стараюсь использовать минимум ручных IP-адресов в своей сети и вместо этого стараюсь, чтобы мой DHCP-сервер назначал почти все IP-адреса, даже для других серверов. Конечно, затем я настраиваю свой DHCP так, чтобы он всегда назначал моим серверам одни и те же IP-адреса на основе MAC-адресов, но таким образом я могу легко переместить сервер из тестовой сети в свою "живую" сеть, просто изменив назначение IP-адресов на DHCP-сервере.
Я хочу иметь возможность делать то же самое и с контейнерами Docker, то есть назначать контейнерам Docker IP-адрес от DHCP в сети хостов.
По этому поводу я не нашел никакой информации в документации Docker, иэтот открытый вопроспри сбое сервера.
С моей точки зрения, есть два возможных пути:
- Создать (вручную) подынтерфейс на хосте с динамическим IP-адресом, а затем использовать
host
сеть в Docker и привязать ее к (вручную) созданному подынтерфейсу? - Как-то используйте
macvlan
сеть. Я не знаю, как ее нужно настроить, чтобы получить назначение DHCP.
Я хотел бы, чтобы мне предложили более приемлемое решение, или чтобы мне помогли продвинуться по маршруту 2, или чтобы мне подтвердили, что маршрут 1 — правильный путь.
решение1
Ознакомьтесь с этим проектом на GitHub.. Сетевой драйвер Docker для работы в сети на хост-мосте с выделенными DHCP IP-адресами