具有零速度虚拟适配器的路由/桥接泊坞窗虚拟适配器

时间:2018-04-16 16:09:00

标签: docker routing hyper-v bridge

我有一堆服务器在docker-for-windows的docker容器中运行。由于docker如何在windows上运行,所以这些都被推入hyper-v vm内部,然后容器在那里运行。因此,要访问绑定到localhost的服务器,我实际上使用的是hyper-v虚拟适配器的ip。

enter image description here

enter image description here

enter image description here

所以我可以在主机Windows机器上使用10.0.75.2:3579连接到我的服务器。现在我想用zerotier将我的所有docker容器桥接到一个虚拟局域网,以便我可以访问我学校网络之外的容器。 ZeroTier创建一个名为“zerotier one virtual port”的虚拟适配器:     enter image description here 现在的工作原理是,如果我在主机Windows机器上运行服务器(裸机),那么我可以使用我的zerotier ip访问它们 10.147.17.221:port。但这并没有连接我的docker东西,因为它在不同的适配器上,这意味着我必须在机器上进行任何与docker相关的东西。如何将zerotier适配器路由或桥接到hyper-v docker适配器,以便我可以使用zerotier ip从外部访问我的docker容器?

3 个答案:

答案 0 :(得分:1)

我没有Windows VM试试这个,但会使用docker网络。例如:

  

docker network create private

     

docker run --rm --name web - 网络私有 -p host_port_1:container_port_1 -p host_port_2:container_port_2 nginx:最新

     

docker run --rm --name db - 网络私有 -p host_port_3:container_port_1 -p host_port_4:container_port_2 postgres:最新

让我知道它是怎么回事。

答案 1 :(得分:1)

我想出的最佳解决方案是不使用zerotier。我已经切换到ngrok,允许重定向到本地ip的简单

答案 2 :(得分:0)

  • 在您的ZeroTier网络上创建一个托管路由,如下所示: [10.0.75.0/24] - [10.147.17.211]
  • 在Windows中打开IP转发。

这将为您网络上的所有ZeroTier节点添加一条静态路由,因此它们知道使用您的VM主机的零层IP作为通往Docker LAN的路由。