Azure 容器注册表`docker login` 不起作用

Dar*_*iyN 5 azure docker azure-container-registry

在尝试docker login使用 Active Directory 凭据通过命令登录 Azure 容器注册表时,我遇到了以下问题:

Error response from daemon: Get https://myregistry.azurecr.io/v2/: unauthorized: authentication required

很明显,权限存在问题,但我找不到达到目标的正确方法。

请注意:

az acr login --name myregistry工作得很好,之后我可以上传我的图像,但由于特定情况,我需要一个docker login带有 AD 凭据的命令和身份验证解决方案。

我尝试使用以下文档向用户提供所需的权限 acrpull/acrpush/acrdelete:

https://docs.microsoft.com/en-us/azure/container-registry/container-registry-auth-service-principal

但没有运气 - 相同的输出。

有什么方法可以使用 AD 凭据登录 ACRdocker login吗?

Cha*_* Xu 8

您遵循的文档是为容器注册表创建服务主体以进行身份​​验证的正确方法。您需要为服务主体分配正确的角色。该角色在脚本中描述:

# Default permissions are for docker pull access. Modify the '--role'
# argument value as desired:
# acrpull:     pull only
# acrpush:     push and pull
# owner:       push, pull, and assign roles
Run Code Online (Sandbox Code Playgroud)

当服务主体准备好时。您可以使用docker login脚本中的变量使用命令登录,如下所示:

docker login $ACR_NAME.azurecr.io -u $SP_APP_ID -p $SP_PASSWD
Run Code Online (Sandbox Code Playgroud)

然后它的工作方式如下:

在此处输入图片说明