Ubuntu上Docker部署ASP.NET Core API无法访问的排查求助
ASP.NET Core Docker部署404问题排查建议
核对API路由与请求路径
确认请求的URL路径和API定义的路由完全匹配,比如是否遗漏了/api前缀,或者路由模板存在拼写错误。检查Program.cs中的路由配置,确保app.MapControllers()或自定义路由规则正确生效。验证容器内服务可用性
在Ubuntu主机上进入容器内部,直接访问容器内的8080端口,确认服务本身是否正常响应:docker exec -it <容器ID/名称> curl http://localhost:8080/你的API接口路径若容器内访问也返回404,说明是应用路由或配置问题;若容器内访问正常,则聚焦外部访问的网络问题。
检查Ubuntu主机防火墙与安全组
Ubuntu默认启用ufw防火墙,确认8098端口已开放:sudo ufw status sudo ufw allow 8098/tcp若使用云服务器,需同步检查云平台安全组是否开放8098端口的入站规则。
确认ASP.NET Core环境配置
ASP.NET Core会根据ASPNETCORE_ENVIRONMENT环境变量加载不同配置,检查容器的环境变量设置:docker inspect <容器ID/名称> | grep ASPNETCORE_ENVIRONMENT注意生产环境(Production)默认不启用Swagger,若请求
/swagger路径会返回404,需请求实际业务API接口。验证端口映射与主机监听状态
用以下命令确认主机8098端口确实在监听,且无其他进程占用:ss -tulpn | grep 8098查看容器详细请求日志
实时查看容器日志,确认请求是否到达服务:docker logs -f <容器ID/名称>若日志无请求记录,说明请求未到达容器,排查网络或防火墙;若有请求记录但返回404,定位应用路由问题。
内容的提问来源于stack exchange,提问作者Jonas Samuelsson
相关产品推荐
相关产品推荐

