【问题标题】:Route/Bridge docker virtual adapter with zerotier virtual adapter使用 zerotier 虚拟适配器的路由/桥接 docker 虚拟适配器
【发布时间】:2018-09-26 10:56:39
【问题描述】:

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

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

【问题讨论】:

  • 我没有 Windows 可以尝试这样做。您可以选择hyper-v 适配器和您的主 Wifi 适配器,看看它们是否可以桥接?
  • 我已经尝试过了。窗户的新娘功能似乎坏了。当我这样做时,hyper-v 适配器和 zerotier 适配器都出现故障,抱怨“电缆拔掉”

标签: docker routing hyper-v bridge


【解决方案1】:
  • 在您的 ZeroTier 网络上创建这样的托管路由: [10.0.75.0/24] - [10.147.17.211]
  • 在 Windows 中开启 IP 转发。

这将为您网络上的所有 ZeroTier 节点添加一个静态路由,以便他们知道使用您的 VM hhost 的 zerotier IP 作为到 docker LAN 的路由。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      我没有 Windows 虚拟机来尝试这个,但会为此目的使用 docker 网络。例如:

      docker 网络创建 私有

      docker run --rm --name web --network private -p host_port_1:container_port_1 -p host_port_2:container_port_2 nginx:最新的

      docker run --rm --name db --network private -p host_port_3:container_port_1 -p host_port_4:container_port_2 postgres:最新

      告诉我进展如何。

      【讨论】:

      • docker 网络存在于 vm 中,因此仍在另一个适配器上。所以这行不通。我还尝试过这里描述的 l2bridge 和透明网络类型:4sysops.com/archives/… 和这里:docs.microsoft.com/en-us/virtualization/windowscontainers/…,但这些在 linux 容器模式下不受支持。所以我只能创建默认的 NAT 网络类型。我也可以做“主机”网络,但那些都绑定到虚拟机的主机网络,这些都不允许我逃离虚拟机
      猜你喜欢
      • 2022-10-05
      • 1970-01-01
      • 2011-11-21
      • 1970-01-01
      • 2016-02-27
      • 2011-05-14
      • 2014-07-23
      • 2019-08-21
      • 1970-01-01
      相关资源
      最近更新 更多