Сетевая маршрутизация для контейнера docker с использованием macvlan - PullRequest
0 голосов
/ 10 апреля 2020

TLDR; Я не могу пропинговать свои docker контейнеры от других моих сетевых клиентов. Только когда контейнер активно пропингует шлюз, я могу впоследствии связаться с контейнерами.

В моей сети (192.168.0.0/24) я запускаю шлюз 192.168.0.1, на котором размещен DNS-сервер, а также маршрутизирует inte rnet Траффи c. Мой docker хост (192.168.0.100) имеет сеть Macvlan, созданную с помощью

docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.100 -o parent=eth0 dockernet

Мои контейнеры теперь получают статические c IP-адреса, например 192.168.0.200. Контейнеры могут активно пропинговать другие физические хосты в сети, так что это прекрасно работает.

Но если я раскручиваю новый контейнер, он не может пропинговать из моей физической сети. Не от хоста docker (что ожидается, так как это кажется ограничением сети macvlan), ни от шлюза или любого другого клиента. Как только контейнер активно пропингует шлюз, он становится доступным и для других клиентов.

Так что я думаю, что нужно выполнить некоторую маршрутизацию, и там мне нужна ваша помощь.

Клиенты работают на debian buster и Я использую неуправляемый коммутатор для подключения клиентов.

1 Ответ

0 голосов
/ 11 апреля 2020

Отсутствующей информацией выше было то, что я запускаю docker на raspbian. Таким образом, этот вопрос на самом деле является дубликатом Docker MACVLAN работает только для Outbound

run sudo rpi-update на хосте, чтобы заставить его работать

...