如何将计算机添加到内部 docker 网络

如何将计算机添加到内部 docker 网络

在大多数情况下,您有一个 docker 容器,您在主机上公开一个端口,以便可以通过本地网络访问它……而我想要做的却恰恰相反。

我有一个应用程序,旨在发现和管理网络上的 IoT 设备。我设置了 x1000+ 个 Docker 容器,就像各种 IoT 设备一样,现在我想让我的 Windows 应用程序(在另一台机器上运行)能够在 Docker 中搜索 172.17.xx 虚拟网络以进行压力测试。

我可以设置一个单独的 docker 节点作为 pptp vpn,可以让 windows 机器连接它...但我想知道是否有更简单的解决方案。

答案1

这不是完整的答案,因为从技术上讲,它并没有将计算机添加到内部 docker 网络,但是,您可以从主机网络上的计算机与 docker 网络进行通信。

例如,如果您有以下真实网络设备:

  • 192.168.1.1-(r1)网络路由器
  • 192.168.1.2 - (h2)随机计算机
  • 192.168.1.3-(h3)docker 主机

以及以下docker网络:

  • 172.17.0.1-(d1)docker 路由器(您不必设置它......它就在那里)
  • 172.17.0.2-(d2)docker 节点

默认情况下,你可以从 (d2) ping (r1)、(h2)、(h3)

但是,如果您想从 (h2) ping (d2),则需要为 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 网络上的任何设备通信,而无需将端口绑定到 docker 主机或在 docker 主机上设置 eth0 的别名。

相关内容