Как добавить компьютер во внутреннюю сеть докеров?
В большинстве случаев у вас есть докер-контейнер, в котором вы открываете порт на хосте, чтобы он мог быть доступен в вашей локальной сети... Я пытаюсь сделать прямо противоположное.
У меня есть приложение, предназначенное для обнаружения и управления устройствами IoT в сети. У меня есть док-контейнеры x1000+, настроенные как различные устройства IoT, и теперь я хочу, чтобы мое приложение windows (работающее на другой машине) могло выполнять поиск в виртуальной сети 172.17.xx в докере для стресс-тестирования.
Я мог бы настроить один док-узел, чтобы он действовал как pptp vpn, к которому я мог бы также подключить Windows-машину... но мне интересно, есть ли более простое решение.
1 ответ
Это не полный ответ, потому что технически это не добавление компьютера во внутреннюю сеть докеров, однако вы можете общаться с сетью докеров с компьютера в сети хостов.
Например, если у вас есть следующие реальные сетевые устройства:
- 192.168.1.1 - (r1) сетевой маршрутизатор
- 192.168.1.2 - (h2) случайный компьютер
- 192.168.1.3 - (h3) докер хост
и следующая докерная сеть:
- 172.17.0.1 - (d1) докер роутер (вам не нужно его настраивать... он просто есть)
- 172.17.0.2 - (d2) докер узел
по умолчанию вы можете пропинговать (r1),(h2),(h3) из (d2)
однако, если вы хотите пропинговать (d2) из (h2), вам нужно будет настроить маршрут для сети 172.17.0.0. Это может быть достигнуто путем включения маршрутизации (h3) с помощью:
sysctl -w net.ipv4.ip_forward=1
и затем установите статический маршрут в (h2) или (r1) с помощью:
route add -net 172.17.0.0 netmask 255.255.0.0 gw 192.168.1.3
Конечным результатом будет то, что (h2) может обмениваться данными с любым устройством в сети 172.17.0.0 без необходимости связывать порты с хостом докера или устанавливать псевдонимы eth0 на хосте докера.