我已经创建了分配AcrPush角色的服务原则。但是,当我从docker访问容器注册表时,会询问我用户名和密码。我从未设置过用户名和密码,如何配置docker以使用服务原理?
答案 0 :(得分:1)
您不必设置用户名和密码,因为容器注册表中已经存在该用户名和密码。 在容器注册表中,您可以启用管理模式,从那里可以获取凭据。
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