【Container App】Container App无法从Container Registries 拉取镜像 - 报错 403 Forbidden
问题描述
基于目前对Azure的资源的安全性合规要求,都需要开启防火墙并且关闭公网访问。 当ACR ( Azure Container Registries )启用了防火墙并关闭公网访问后。
引起了一个新的问题:Container App无法拉取ACR中的镜像!

错误信息:
{"TimeStamp":"2025-07-30 12:58:24.9603413 \u002B0000 UTC","Type":"Warning","ContainerAppName":"xxxxx","RevisionName":"xxxxx--0000001","ReplicaName":"xxxxx--0000001-56db958c8b-k97xk","Msg":"Container \u0027xxxxx\u0027 was terminated with exit code \u0027\u0027 and reason \u0027ImagePullFailure\u0027. Pull image: xxxxxxx.azurecr.cn/mynodejsalbum:v1 failed with exit code: 1, error: time=\u00222025-07-30T12:58:24Z\u0022 level=info msg=\u0022trying next host\u0022 error=\u0022failed to authorize: failed to fetch anonymous token: unexpected status from GET request to https://xxxxxxx.azurecr.cn/oauth2/token?scope=repository%3Amynodejsalbum%3Apull\u0026service=xxxxxxx.azurecr.cn: 403 Forbidden\u0022 host=xxxxxxx.azurecr.cn\nctr: failed to resolve reference \u0022xxxxxxx.azurecr.cn/mynodejsalbum:v1\u0022: failed to authorize: failed to fetch anonymous token: unexpected status from GET request to https://xxxxxxx.azurecr.cn/oauth2/token?scope=repository%3Amynodejsalbum%3Apull\u0026service=xxxxxxx.azurecr.cn: 403 Forbidden\n.","Reason":"ContainerTerminated","EventSource":"ContainerAppController","Count":1}
问题解答
这个问题的原因有两点:
1) ACR 中没有设置允许ACA访问的白名单
2) ACA的出口IP地址并不固定。它可能会使用所在数据中心的出口IP段中的某一个IP,如果要指定固定的出口IP,需要使用NAT Gateway来实现!
基于以上原因,这里推荐使用ACR的Private Endpint来解决访问403问题 ( https://learn.microsoft.com/en-us/azure/container-registry/container-registry-private-link )
PS: 为何在启用了Azure Trusted Services后,Azure数据中心的服务也无法访问呢? 原因是目前ACR指支持四种服务可以Bypass访问。ACA不在其中!
- Azure Container Instances
- Microsoft Defender for Cloud
- Machine Learning Azure
- Container Registry
配置Private Endpint的步骤简单,但是需要注意:必须选择与ACA所在的VNET相通的网络(同一个VNET或之间有peering) 。
最好 最好 是启用Private Endpint后,在ACA中使用 curl -v https://<yourACRhost> 来验证是否是私网IP地址,是否可以连通!
如下图测试结果:

PS:如果在配置Container App的页面中发现无法列出当前ACR的镜像列表,这是因为当前浏览器所在的环境的IP地址无法访问ACR,在ACR中添加当前IP地址访问后就可以解决此问题!

参考资料
Trusted services :https://learn.microsoft.com/en-us/azure/container-registry/allow-access-trusted-services
Connect privately to an Azure container registry using Azure Private Link : https://learn.microsoft.com/en-us/azure/container-registry/container-registry-private-link
【Container App】Container App无法从Container Registries 拉取镜像 - 报错 403 Forbidden的更多相关文章
- eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错? java.lang.ClassNotFoundException: com.branchitech.app.startup.AppStartupContextListener java.lang.ClassN
eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错?java. ...
- ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/u01/app/oracle/product/19.2.0/db_1/dbs/initsanshi.ora'报错
本人是在Linux安装Oracle19C之后,启动数据库时,XSHELL命令行窗口报的该错误,看了几个解决方案之后,总结如下 从字面的意思来看,是在dbs目录当中没有这个initsanshi.ora文 ...
- 关于App自动化执行链接Appium服务包名正确但是报错An unknown server-side error occurred while processing the command
在执行链接Appium服务时连接失败可能原因: 1.报错截图: 2.先检查包名是否正确(正常情况下包名不会错误)通过命令行查看包名:aapt dump badging xxx.apk 3.检查对应包的 ...
- spark运行任务报错:Container [...] is running beyond physical memory limits. Current usage: 3.0 GB of 3 GB physical memory used; 5.0 GB of 6.3 GB virtual memory used. Killing container.
spark版本:1.6.0 scala版本:2.10 报错日志: Application application_1562341921664_2123 failed 2 times due to AM ...
- docker起不来报错:Failed to start Docker Application Container Engine.
报错信息如下: [root@localhost localdisk]# systemctl restart docker Job for docker.service failed because t ...
- Eclipse中启动tomcat报错:A child container failed during start
我真的很崩溃,先是workspace崩了,费了好久重建的workspace,然后建立了一个小demo项目,tomcat中启动却报错,挑选其中比较重要的2条信息如下: A child container ...
- 解决Eclipse 项目报错:Unbound classpath container
Eclipse出现下面两条报错: The project cannot be built until build path errors are resolved HelloWord Unknown ...
- Eclipse Maven项目报错2之A child container failed during start
问题:在同事那里拿了一个Eclipse的maven项目,导入报错,主要显示的是A child container failed during start 具体错误如下 六月 02, 2018 12:0 ...
- 解决Eclipse 项目报错:Unbound classpath container: ‘JRE System Library [JavaSE-1.7]
MyEclipse出现下面两条报错: The project cannot be built until build path errors are resolved HelloWord Unknow ...
- ClouderaManager启动NodeManager失败!报错Failed to initialize container executor
报错信息: 2016-07-27 10:53:14,102 WARN org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor: ...
随机推荐
- MethodImpl优化性能
参数解释 MethodImplOptions.AggressiveInlining:请求编译器在可能的情况下对方法进行内联. MethodImpl:这是一个属性,允许开发者为方法指定特定的实现行为,比 ...
- ASP.NET Core MiniAPI中 EndPoint相关
1.状态码返回之演化之路 1.1最基本的就是用Results或者TypedResults返回带有状态码的响应(可选Json响应体) app.MapGet("/fruit/{id}" ...
- 制作一个炫酷的多小球碰碰的 JS 网页,入门物理碰撞模拟和类的应用
目录 前言 先画一个圆 完善我们的类 小球动起来 最简单的碰撞计算,接触墙壁反弹 向量类的完善 检测两小球之间的碰撞 完善碰撞的效果 重复计算的问题 撞击墙壁定格问题 内存问题 随机数生成多个小球 参 ...
- Partition to K Equal Sum Subsets——LeetCode进阶路
原题链接https://leetcode.com/problems/partition-to-k-equal-sum-subsets/ 题目描述 Given an array of integers ...
- sublime仿IDEA darcula主题
按ctrl+shif+p,输入install package,进入 搜索Darkula,出来的就是了,安装好后在配色方案里选择该主题即可. 记住,是Darkula ,不是darcula.
- 2025最好的Next.js面试
2025最好的Next.js面试题(一) 最近在面试,就写一些关于问到的面试题,同时也过一下知识点. 基础概念 什么是Next.js?它与React的关系是什么? Next.js是一个基于React的 ...
- React-Native开发鸿蒙NEXT-多bundle的加载
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...
- SmolVLA: 让机器人更懂 “看听说做” 的轻量化解决方案
TL;DR 今天,我们介绍了 SmolVLA,这是一个轻量级 (450M 参数) 的开源视觉 - 语言 - 动作 (VLA) 模型,专为机器人领域设计,并且可以在消费级硬件上运行. 仅使用开源社区共享 ...
- 2023人形全能赛竞速机器人mega代码
mega // @Author : Hcm #include <LobotServoController.h> // 舵机板通信 #include <OneButton.h> ...
- BAPI_CUSTOMERRETURN_CREATE 创建退货订单
READ TABLE s_head INDEX 1. IF sy-subrc = 0. ls_orders_h = s_head. *** 抬头 CLEAR: ls_header,ls_headerx ...