关闭IIS服务后,如何恢复Docker部署网站的localhost访问?
解决Docker网站无法通过localhost访问的问题
检查端口占用情况
- 打开CMD或PowerShell,执行命令:
netstat -ano | findstr ":80"(如果你的网站用其他端口,替换成对应数字),查看哪个进程仍在占用目标端口。 - 记下占用端口的PID,打开任务管理器找到对应进程并结束。
确认Docker容器端口映射
- 用
docker ps查看容器端口映射状态,确保存在0.0.0.0:80->80/tcp或localhost:80->80/tcp这类正确映射(端口号根据实际情况调整)。 - 若映射异常,停止容器后重新启动并指定正确映射,比如:
docker run -d -p 80:80 [你的镜像名称]
检查Windows防火墙设置
- 临时关闭防火墙测试是否能访问,若恢复正常,需在防火墙中添加允许Docker对应端口的入站规则,或确保Docker Desktop相关的防火墙规则处于启用状态。
验证Hosts文件配置
- 打开
C:\Windows\System32\drivers\etc\hosts文件,确认存在127.0.0.1 localhost和::1 localhost这两行,无异常的localhost映射指向其他IP。
重置Docker网络配置
- 执行
docker network prune清理无用网络,随后重启Docker Desktop。 - 也可打开Docker Desktop设置,进入“Resources”->“Network”,点击“Reset to factory defaults”重置网络后重启Docker。
清理HTTP.sys端口预留规则
- IIS安装后可能通过HTTP.sys预留了端口,即使服务停止规则仍存在。执行
netsh http show urlacl查看所有预留URL规则,找到包含目标端口的条目。 - 用命令删除对应规则:
netsh http delete urlacl url=http://+:80/(替换为你使用的端口号)
内容的提问来源于stack exchange,提问作者John John
相关产品推荐
相关产品推荐

