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

如何使用私有Azure Container Registry创建Azure App Service并解决镜像不可见问题

在App Service中使用配置了私有访问的Azure容器注册表(ACR)

当你的ACR设置为「选定网络」并配置了私有终结点时,要让App Service正常访问并使用其镜像,需要完成以下配置:

1. 确保私有终结点网络连通性

  • 将ACR的私有终结点部署到与App Service相同的虚拟网络,或通过虚拟网络对等互联实现网络连通。
  • 启用ACR私有终结点的DNS集成,确保App Service能通过私有DNS解析到ACR的私有IP,避免流量走公网。

2. 配置App Service的网络接入

普通App Service(非应用服务环境)

开启VNet集成功能,将App Service接入到ACR私有终结点所在的虚拟网络或对等网络中,让App Service的流量通过私有网络访问ACR,符合「选定网络」的访问规则。

应用服务环境(ASE)

确保ASE所在的子网已被添加到ACR的「选定网络」允许列表中,ASE本身处于虚拟网络内,默认可访问同网络内的ACR私有终结点。

3. 配置ACR访问权限

  • 给App Service的系统托管标识或用户托管标识分配ACR的AcrPull角色,让App Service具备拉取镜像的权限。
  • 若使用服务主体身份验证,需确保服务主体拥有ACR的AcrPull权限,并在App Service的容器设置中正确配置服务主体的客户端ID和密钥。

4. 绕过门户UI限制(创建Web App时)

当ACR公网访问设为「选定网络」时,Azure门户前端从公网访问ACR,因此UI中无法直接看到镜像。可通过以下方式部署:

  • 使用Azure CLI命令:
    az webapp create --resource-group <你的资源组> --name <Web App名称> --plan <App Service计划> \
      --docker-image <ACR名称>.azurecr.io/<镜像名>:<标签> \
      --docker-registry-server-url https://<ACR名称>.azurecr.io \
      --docker-registry-server-user <服务主体ID> \
      --docker-registry-server-password <服务主体密钥>
    
  • 或使用ARM模板部署,直接指定ACR镜像地址和身份验证信息。

5. 验证部署

部署完成后,可通过以下方式验证:

  • 查看Web App的容器日志,确认镜像拉取成功。
  • 使用az webapp log tail --name <Web App名称> --resource-group <资源组>命令查看实时日志,排查网络或权限相关错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 01:05:23