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

推送Docker镜像至Azure容器注册表时遇403错误求助

解决Docker推送到Azure ACR时的403错误

问题重现

执行以下命令时出现错误:

sudo docker push prio.azurecr.io/prio-adi-piplines:latest

错误输出:

The push refers to repository [prio.azurecr.io/prio-adi-piplines]
ea8e4df76021: Preparing
48b104cbbb7b: Preparing
ceaf9e1ebef5: Preparing
9b9b7f3d56a0: Preparing
f1b5933fe4b5: Preparing
error parsing HTTP 403 response body: unexpected end of JSON input: ""

此前已完成Maven构建和Docker镜像构建,仅更新了application.properties中的密钥。

解决步骤

  • 确认Docker已登录目标ACR
    由于使用sudo执行推送,需确保sudo环境下的Docker已完成登录:

    # 用Azure CLI登录ACR(需预先安装配置Azure CLI)
    sudo az acr login --name prio
    # 或用Docker原生登录,输入ACR的用户名和密码(从Azure门户ACR「访问密钥」获取)
    sudo docker login prio.azurecr.io
    

    注意:普通用户的Docker登录状态与sudo环境不共享,必须在sudo下执行登录操作。

  • 验证ACR权限配置
    确认用于登录的账号(Azure AD账号或服务主体)拥有AcrPush角色权限:

    1. 登录Azure门户,找到目标ACR资源
    2. 进入「访问控制(IAM)」->「角色分配」
    3. 检查当前账号是否被分配「AcrPush」角色,无则添加对应角色分配
  • 核对镜像标签正确性
    执行docker images命令,确认本地存在标签为prio.azurecr.io/prio-adi-piplines:latest的镜像,避免因标签拼写错误导致推送失败。

  • 清理过期登录凭证
    若之前的登录凭证已过期,先注销再重新登录:

    sudo docker logout prio.azurecr.io
    sudo docker login prio.azurecr.io
    
  • 排查网络连通性
    检查服务器是否能正常访问ACR端点,执行:

    curl -I https://prio.azurecr.io
    

    若返回403状态码,说明网络连通但权限不足;若返回超时等错误,需排查网络代理、防火墙规则是否允许访问ACR的443端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 16:27:11