You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Azure Container Registry部署Docker镜像后仅显示默认页面求助

我之前碰到过完全一样的问题,折腾了好一阵才找到根源,给你整理几个关键排查步骤,应该能帮你定位问题:

排查Azure Web App未加载Docker镜像内容的核心步骤

先确认部署配置的正确性

  • 检查容器设置细节:登录Azure门户找到你的Web App,进入「容器设置」页面,务必确认这几个点:
    • 镜像源是不是你推送的那个Azure Container Registry(ACR)
    • 镜像名称和标签完全匹配你推送的版本(别把latest标签搞错,或者不小心用了旧的镜像版本)
    • 启动命令是否正确配置:如果你的应用需要特定命令才能启动(比如npm start、gunicorn app:app这类),这里必须填写,否则容器可能无法正常启动,App Service会自动 fallback 到默认页面。
  • 验证ACR访问权限:确保Web App有权限拉取ACR中的镜像。可以在ACR的「访问控制(IAM)」面板中,给Web App的系统分配身份(或者对应的服务主体)添加AcrPull角色;如果是用用户名密码拉取,要确认容器设置里的凭据是ACR管理员账号(或专用服务账号)的正确信息。

检查容器是否实际启动运行

  • 查看容器启动日志:在Web App的「日志流」页面实时查看,或者用Azure CLI命令:
    az webapp log tail --name <你的应用名称> --resource-group <你的资源组名称>
    
    这里能看到容器启动过程中的报错,比如端口不匹配、依赖缺失、环境变量错误等——很多时候默认页面显示,就是因为容器根本没成功启动。
  • 确认端口一致性:Dockerfile里的EXPOSE端口,要和Web App容器设置中的「端口」字段完全一致,同时你的应用必须确实在这个端口上监听请求(比如Node.js应用要确保app.listen(3000)中的端口和配置一致)。

验证部署是否触发了镜像拉取

  • 查看部署中心记录:进入Web App的「部署中心」,查看最近的部署日志,确认是否有成功拉取镜像的记录。如果显示部署成功但无镜像相关操作,试着重新保存一次容器设置,强制触发重新部署。
  • 通过Kudu API检查容器状态:访问https://<my-site>.scm.azurewebsites.net/api/containers/json(可以直接在浏览器打开,或者在调试控制台调用),如果返回空数组,说明容器完全没被启动,问题大概率出在配置或权限上。

几个容易忽略的细节

  • 镜像启动耗时:如果你的镜像体积较大,App Service拉取和启动可能需要5-10分钟,别着急刷新页面,给足时间等待容器初始化完成。
  • 网络限制:如果你的ACR设置了虚拟网络或防火墙规则,要确保Web App所在的网络能访问ACR,或者在ACR防火墙中添加Web App的出站IP地址作为例外。

如果以上步骤都排查完还是没解决,建议贴出容器设置的截图(打码敏感信息)和日志流中的关键报错内容,方便进一步定位问题。

内容的提问来源于stack exchange,提问作者Hafiz Temuri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:15:16