Docker通过服务原理登录Azure容器注册表

时间:2019-11-20 14:20:18

标签: azure docker azure-container-registry

我已经创建了分配AcrPush角色的服务原则。但是,当我从docker访问容器注册表时,会询问我用户名和密码。我从未设置过用户名和密码,如何配置docker以使用服务原理?

3 个答案:

答案 0 :(得分:1)

您不必设置用户名和密码,因为容器注册表中已经存在该用户名和密码。 在容器注册表中,您可以启用管理模式,从那里可以获取凭据。 enter image description here

docker login myregistry.azurecr.io

从门户网站输入用户名和密码,它应该可以使用。

如果正确创建了service principal,则可以执行以下操作:

docker login myregistry.azurecr.io --username $SP_APP_ID --password $SP_PASSWD

答案 1 :(得分:1)

对于您的问题,可以使用角色为AcrPush的ACR的服务主体来推送图像。用户名和密码是服务主体的appId和密码,但是您需要注意,密码在创建服务主体时仅显示一次。如果忘记密码,则需要重设密码。因此,docker登录将如下所示:

docker login youracr.azurecr.io -u app_id -p app_password

答案 2 :(得分:0)

除了@kgalic的答案,您还可以执行以下操作: 您没有指定要执行docker login命令的 where ,但是假设您有权访问Azure CLI和适当的凭据,则可以通过az acr login --name <acrName>登录到Azure容器注册表。这会将ACR凭证向下传送到docker,因此您无需执行单独的docker login

有关更多信息,请参见以下内容: https://docs.microsoft.com/en-us/azure/container-registry/container-registry-authentication