docker 端口映射在 Windows 上如何工作?

docker 端口映射在 Windows 上如何工作?

据我所知,它使用 Linux 上的 iptables,并且不仅允许通过 ip 转发流量,还允许通过端口转发流量。

现在,在 Windows 上,我们在 WSL2 中运行 docker。镜像名称为 docker-desktop。它已分配 IP 地址并公开一些端口。我可以通过 Windows 中的虚拟适配器访问此 VM。

在我的计算机上

Ethernet adapter vEthernet (WSL):

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::2111:6704:7dea:56d5%49
   IPv4 Address. . . . . . . . . . . : 172.30.176.1
   Subnet Mask . . . . . . . . . . . : 255.255.240.0
   Default Gateway . . . . . . . . . :

我还可以连接到本地主机上的这些端口。docker 是如何做到的?它会为每个端口运行代理吗?我猜你不能在 Windows 中通过 ip + 端口转发流量,所以应该有其他机制。

答案1

这是一个 Hyper-V 虚拟交换机。这不是代理。

它是一个虚拟网络适配器,在 Windows 看来与任何物理适配器完全相同。不同之处在于它的驱动程序是 Hyper-V 的一部分,它处理发送到/来自适配器的所有数据包。

发往计算机外部的数据包将通过计算机的实际物理适配器发送,并通过建立的连接接收答复。

相关内容