无法在Windows主机访问Docker Ubuntu容器中的.NET Core应用
解决Windows主机访问Docker Ubuntu容器内.NET应用的问题
核心原因
你当前运行的Ubuntu容器未配置端口映射,Docker默认会隔离容器内部端口,Windows主机无法直接访问容器内的端口,必须通过端口映射将容器端口暴露到主机网络中。
快速解决步骤
- 停止并删除现有容器(若需保留容器内数据,可跳过删除步骤,改用镜像提交方式)
docker stop ubuntu docker rm ubuntu
- 重新运行容器,添加端口映射参数(将容器的8081、8082端口映射到主机对应端口)
docker run -d -p 8081:8081 -p 8082:8082 --name ubuntu ubuntu:22.04
参数说明:
-p 主机端口:容器端口:实现主机与容器的端口绑定,让主机能通过自身端口访问容器内的服务
- 重新部署.NET应用到新容器并启动后,在Windows Chrome浏览器访问
http://localhost:8081或http://localhost:8082即可正常打开页面。
保留现有容器数据的替代方案
如果不想丢失现有容器内的配置和应用,可先将容器打包为镜像,再基于新镜像运行带端口映射的容器:
- 将现有容器提交为新镜像
docker commit ubuntu ubuntu-dotnet-app
- 基于新镜像运行带端口映射的容器
docker run -d -p 8081:8081 -p 8082:8082 --name ubuntu-new ubuntu-dotnet-app
额外排查点(若映射后仍无法访问)
- 检查Windows防火墙:添加入站规则,允许8081、8082端口的TCP连接
- 检查Chrome代理:关闭浏览器的代理设置,避免代理拦截本地访问请求
内容的提问来源于stack exchange,提问作者walker's a
相关产品推荐
相关产品推荐

