Docker 推送到 Azure 容器注册表失败,因为身份验证在完成之前过期 - 解决方法?

Docker 推送到 Azure 容器注册表失败,因为身份验证在完成之前过期 - 解决方法?

在 Windows Server 2016 上使用 Azure CLI 针对 Azure 容器注册表(az loginaz acr login

我正在使用 推送大型 Windows 容器 docker 映像 (>10GB) docker push。 似乎身份验证在完成之前就过期了。

镜像中较小的层推送成功并完成,但最大的层在声明之前就达到了 100%

unauthorized: authentication required

有没有办法可以延长身份验证的持续时间(az acr login)以便完成完整的推送?

答案1

一个有效的解决方法似乎是完全忽略az acr login,直接转到docker login实际缓存其凭据的位置

我使用了以下解决方法启用管理员帐户并使用该帐户登录以推送- 但这仍然适用于除管理员之外的 RBAC/用户帐户

答案2

目前 Azure CLI 登录的超时时间为 3 小时。因此,对于 10 GB 的图像,身份验证可能确实超时了。

但是,就我而言,我发现容器镜像的存储库路径需要全部小写。一旦我这样做,我就不再有授权问题了。

PS>docker 镜像--所有存储库标签镜像ID
my-asp-app 最新 a1f5b7c1e076
myFirstContainerRegistry3364629895.azurecr.io/my-asp-app
v1 a1f5b7c1e076
myfirstcontainerregistry3364629895.azurecr.io/my-asp-app
v1 a1f5b7c1e076

相关内容