安装 docker 后无法从 windows 访问 wsl web 应用程序

问题描述

在我安装 docker 并重新启动之前,我从 Windows 通过 WSL 访问在 Ubuntu 中运行的应用程序没有问题。

我检查了我的主机配置文件,它看起来像下面这样:

# copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally,comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#       127.0.0.1       localhost
#       ::1             localhost
# Added by Docker Desktop
192.168.1.244 host.docker.internal
192.168.1.244 gateway.docker.internal
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
# End of section

我注释掉倒数第二行

# 127.0.0.1 kubernetes.docker.internal

并使用

刷新我的dns
ipconfig /flushdns

但是如果我尝试访问在 wsl 中运行在端口 3001 上的节点应用程序,我的浏览器会给出“无法访问此页面消息”

这不是 node 或我的应用程序的问题,因为我能够从 ubuntu 终端成功卷曲我的应用程序

解决方法

我只需将 wsl 的 IP 地址添加到我的 docker 声明上方的主机文件中即可解决此问题:

<ip address of wsl> localhost