我正在使用Windows 10 1909,并已使用Ubuntu 20.04(版本为19.03.13-beta2的docker版本)安装了WSL2,并已使用WSL2选项安装了适用于Windows Edge的Docker版本。集成工作得很好,但是我有一个我无法解决的问题。
在WSL2实例上,有正在运行的服务,暴露了一些端口(3000、3001、3002等)。我需要从一个Docker容器中访问特定开发场景(API网关)的服务,而这无法正常工作。
我尝试直接使用WSL2 IP地址,但是连接只是超时。我也尝试过使用host.docker.internal
,它可以解析为WSL2 IP地址以外的其他地址,但仍然无法正常工作。
我是否需要拉一个特殊的技巧,或者当前不支持这种路由,但是会,或者由于其他原因而无法实现这种路由吗?
这说明了我要实现的目标:
其他路由有效-即我可以从Windows浏览器访问WSL2内部的node.js进程提供的所有服务端口,也可以从WSL2内部和Windows的容器访问公开的服务端口。只是这个缺失的链接,我无法工作。
答案 0 :(得分:0)
其价值:如果您使用WSL2子系统IP地址,此方案是有效的。
如果您使用host.docker.internal
,则不不起作用-该DNS别名是在容器中定义的,但是它映射到Windows主机而不是WSL2主机的IP地址,并且返回WSL2主机内部的路由无效。
这个原因(可能是暂时的)没有奏效的原因尚不清楚-如果问题再次出现,我将重新讨论该答案,我将设法找出实际的问题。