wsl2镜像网络模式下docker容器服务无法通过局域网ip访问启用镜像网络模式自动通过主机防火墙规则确保主机允许局域网访问WSL2镜像网络模式下Docker容器服务无法通过局域网IP访问通常是因容器未绑定到 0.0.0.0 或Windows防火墙拦截引起。解决此问题的核心在于在 .wslconfig 启用镜像网络与固定IP并确保Docker服务监听所有网卡。以下是分步解决方案1. 配置 WSL2 镜像网络 (.wslconfig)在您的Windows用户主目录通常是 C:\Users\用户名\下创建或编辑 .wslconfig 文件添加以下内容以确保网络镜像生效并允许局域网访问ini[wsl2]启用镜像网络模式networkingModemirrored自动通过主机防火墙规则firewalltrue确保主机允许局域网访问dnsTunnelingtrue请谨慎使用此类代码。2. 配置 Docker 绑定 (daemon.json)由于镜像模式下网络可能存在不一致需要在 WSL2 的 Ubuntu 中配置 Docker使其监听所有接口而非仅监听本地在 WSL2 中编辑或创建 /etc/docker/daemon.jsonbashsudo vi /etc/docker/daemon.json请谨慎使用此类代码。添加以下内容json{“hosts”: [“tcp://0.0.0.0:2375”, “unix:///var/run/docker.sock”]}请谨慎使用此类代码。注意若您本地已有其他配置请合并。重启 Docker 服务bashsudo service docker restart请谨慎使用此类代码。3. 配置 Windows 防火墙 (最关键步骤)即使镜像模式开启Windows防火墙仍可能拦截WSL的外部访问。以管理员身份运行 PowerShell。执行以下命令允许所有入站端口或针对性添加端口powershellNew-NetFirewallRule -DisplayName “WSL2 Docker Inbound” -Direction Inbound -Action Allow -Protocol TCP请谨慎使用此类代码。4. 检查容器启动参数确保容器绑定到 0.0.0.0而不是 127.0.0.1。不推荐 docker run -p 127.0.0.1:8080:80 (只能被本机访问)推荐 docker run -p 8080:80 (绑定到 0.0.0.0允许外部访问)配置完成后使用 Windows 的局域网IP如 192.168.x.x:端口即可从其他设备访问。