Как добавить компьютер во внутреннюю сеть докеров?

В большинстве случаев у вас есть докер-контейнер, в котором вы открываете порт на хосте, чтобы он мог быть доступен в вашей локальной сети... Я пытаюсь сделать прямо противоположное.

У меня есть приложение, предназначенное для обнаружения и управления устройствами 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 на хосте докера.

Другие вопросы по тегам