在 Windows Server 2016 上使用 Azure CLI 针对 Azure 容器注册表(az login
和az 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