У меня возникли некоторые проблемы с попыткой напрямую подключить контейнеры докеров к сети хоста.Подключить контейнеры докеров непосредственно к подсети хоста
Конфигурация выглядит следующим образом: Один хост имеет один интерфейс (eth0) в подсети, скажем, 10.0.15.0/24. IP на eth0 составляет 10.0.15.5/24. Я настроил мост docker0 для использования подсети в подсети, доступной из eth0, а именно 10.0.15.64/26. Таким образом, докер может использовать IP-адреса из этого/26, чтобы предоставить контейнерам, и я хочу, чтобы контейнеры были напрямую доступны из остальной сети. Мост докера также имеет набор IP, а именно 10.0.15.65/26.
Когда контейнер создан, он получает IP, например 10.0.15.66/26. Теперь, я сделал некоторые испытания с пингованием:
- ничего по сети может 10.0.15.5 (eth0 хоста)
- что-либо в сети может свистеть 10.0.15.65 (docker0 моста хозяина)
- хост может свистеть 10.0.15.66 (IP контейнера)
- контейнер может свистеть ничего в сети
- ничего, кроме хозяина может не пинг контейнер на 10.0.15.66
IP-экспедиторская включен
[[email protected]~]# cat /proc/sys/net/ipv4/ip_forward
1
Что я здесь отсутствует? Контейнеры, подключенные к мосту docker0, должны быть доступны из сети, я думаю.
Ожидаемое поведение Контейнеры должны быть pingable из любого места в сети, так же, как docker0 моста и т.д.
Любые мысли или помощь будет высоко ценится!
Поскольку вы уже манипулируете правилами iptables, я бы сначала попытался добавить '--iptables = false' в командную строку Docker demon, чтобы он не добавлял никаких правил, которые бы противоречили тому, что вы пытаетесь сделать. – Michael