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

Docker推送镜像至Azure ACR报错“unauthorized: authentication required”求助

Docker推送至Azure容器注册表(ACR)的授权问题排查

我作为Azure容器注册表(ACR)的IAM所有者,在推送Docker镜像时遇到授权错误,具体操作流程及报错如下:

$ az logout
$ az login
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code FW....C to authenticate.
[
  {
    "cloudName": "AzureCloud",
    "homeTenantId": "[redacted]",
    "id": "[redacted]",
    "isDefault": true,
    "managedByTenants": [],
    "name": "Azure subscription 1",
    "state": "Enabled",
    "tenantId": "[redacted]",
    "user": {
      "name": "[redacted]",
      "type": "user"
    }
  }
]
$ az account set -s [subscription id redacted]
$ az acr login --name arcticacr
Login Succeeded
$ docker push ArcticaCR.azurecr.io/sftp01/sftptest:0.02
The push refers to a repository [ArcticaCR.azurecr.io/sftp01/sftptest]
b152ea134f5f: Preparing 
d799cb5f12bf: Preparing 
6b4e8c931236: Preparing 
6f4c91ca60bd: Preparing 
86eecfa8066e: Preparing 
unauthorized: authentication required, visit https://aka.ms/acr/authorization for more information.

可能的原因及解决办法

  • Docker凭证缓存冲突:az acr login生成的临时凭证可能与之前存储的旧凭证(如ACR管理员密钥、其他租户凭证)冲突,导致Docker使用错误凭证进行推送。

    • 操作:执行docker logout arcticacr.azurecr.io清理缓存,重新运行az acr login --name arcticacr,再尝试推送。
  • ACR名称大小写不匹配:az acr login使用的是小写名称arcticacr,但推送命令中使用了混合大小写的ArcticaCR.azurecr.io。ACR登录服务器名称区分大小写,Docker会将不同大小写的服务器视为不同目标,导致凭证不匹配。

    • 操作:统一使用小写名称,推送命令改为docker push arcticacr.azurecr.io/sftp01/sftptest:0.02。
  • IAM权限生效延迟:Azure IAM权限分配后可能存在短暂的生效延迟,即使你是所有者,新权限也可能未及时同步到会话中。

    • 操作:等待5-10分钟后重新执行az logout→az login→az account set流程,刷新会话后再尝试推送。
  • Docker配置文件异常:~/.docker/config.json文件可能存在格式错误或无效凭证条目,导致Docker无法正确读取az acr login生成的临时凭证。

    • 操作:备份该文件后删除,重新执行az acr login生成新的配置,再尝试推送。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 00:18:20