ASP.Net Core Web应用Docker运行异常:容器就绪却无法访问
解决Docker Toolbox下ASP.NET Core容器无法通过localhost访问的问题
嘿,我一眼就看出你的问题所在了——因为你用的是Windows 7上的Docker Toolbox,它和Windows 10/11的原生Docker Desktop不一样,是靠VirtualBox创建的Linux虚拟机来跑容器的,所以你直接敲localhost根本找不到容器哦!
下面给你捋清楚解决步骤:
第一步:拿到Docker虚拟机的IP地址
打开你平时用的Docker Quickstart Terminal(或者任何已经配置了Docker环境变量的终端),输入这条命令:
docker-machine ip default
一般情况下会返回类似192.168.99.100的IP,这就是容器所在虚拟机的地址。
第二步:用虚拟机IP访问你的站点
你之前启动容器时用了-p 8080:5000,把宿主的8080端口映射到了容器的5000端口。现在别再用localhost了,换成刚才拿到的虚拟机IP,比如:
http://192.168.99.100:8080
访问这个地址,你的ASP.NET Core网站应该就能正常打开了。
额外排查小技巧(如果还是不行的话)
- 先确认VirtualBox里的
default虚拟机是运行状态:打开VirtualBox,看看虚拟机列表里它是不是亮着的 - 检查端口映射有没有生效:跑
docker ps命令,看你容器的PORTS列是不是显示0.0.0.0:8080->5000/tcp,确保端口映射成功 - 可以进虚拟机里测试:执行
docker-machine ssh default进入虚拟机终端,然后用curl http://localhost:5000看看容器能不能正常响应,排除应用本身的问题
对了,你的Dockerfile配置和容器日志都没问题,日志里显示Now listening on: http://[::]:5000说明应用已经正常监听端口了,就是网络地址的问题~
内容的提问来源于stack exchange,提问作者55SK55
相关产品推荐
相关产品推荐

