通过身份验证启用工件缓存 - Azure CLI
本文是教程系列文章中的第三部分。 第一部分概述了工件缓存及其功能、优势和限制。 在第二部分中,你将了解如何使用 Azure CLI 启用工件缓存功能。
本文将引导你完成使用 Azure CLI 启用具有身份验证的工件缓存的步骤。 必须使用凭据集来执行经过身份验证的拉取或访问专用存储库。
先决条件
可以使用本地安装的 Azure CLI 来运行本文中的命令示例。 如果想要在本地使用它,则需要使用 2.46.0 版或更高版本。 运行
az --version
即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI。你有一个用于存储凭据的现有密钥保管库。 详细了解如何在密钥保管库中创建和存储凭据。
可以在密钥保管库中设置和检索机密。 详细了解如何在密钥保管库中设置和检索机密。
配置具有身份验证的工件缓存 - Azure CLI
创建凭据 - Azure CLI
在配置凭据之前,必须在 Azure 密钥保管库中创建和存储机密,并从密钥保管库检索机密。 详细了解如何在密钥保管库中创建和存储凭据以及在密钥保管库中设置和检索机密。
运行 az acr credential set create 命令以创建凭据。
- 例如,为给定
MyRegistry
Azure 容器注册表创建凭据。
az acr credential-set create -r MyRegistry \ -n MyRule \ -l docker.io \ -u https://MyKeyvault.vault.azure.cn/secrets/usernamesecret \ -p https://MyKeyvault.vault.azure.cn/secrets/passwordsecret
- 例如,为给定
运行 az acr credential set update 以更新凭据集上的用户名或密码 KV 机密 ID。
- 例如,更新给定
MyRegistry
Azure 容器注册表的凭据上的用户名或密码 KV 机密 ID。
az acr credential-set update -r MyRegistry -n MyRule -p https://MyKeyvault.vault.azure.cn/secrets/newsecretname
- 例如,更新给定
运行 az-acr-credential-set-show 以显示凭据。
- 例如,显示给定
MyRegistry
Azure 容器注册表的凭据。
az acr credential-set show -r MyRegistry -n MyCredSet
- 例如,显示给定
使用凭据创建缓存规则 - Azure CLI
运行 az acr cache create 命令以创建缓存规则。
- 例如,使用给定
MyRegistry
Azure 容器注册表的凭据创建缓存规则。
az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyCredSet
- 例如,使用给定
运行 az acr cache update 命令以更新缓存规则上的凭据。
- 例如,更新给定
MyRegistry
Azure 容器注册表的缓存规则上的凭据。
az acr cache update -r MyRegistry -n MyRule -c NewCredSet
- 例如,从给定
MyRegistry
Azure 容器注册表的现有缓存规则中删除凭据。
az acr cache update -r MyRegistry -n MyRule --remove-cred-set
- 例如,更新给定
运行 az acr cache show 命令以显示缓存规则。
- 例如,显示给定
MyRegistry
Azure 容器注册表的缓存规则。
az acr cache show -r MyRegistry -n MyRule
- 例如,显示给定
分配对密钥保管库的权限
获取用于访问密钥保管库的系统标识的主体 ID。
PRINCIPAL_ID=$(az acr credential-set show -n MyCredSet \ -r MyRegistry \ --query 'identity.principalId' \ -o tsv)
在拉取映像之前,运行 az keyvault set-policy 命令以分配对密钥保管库的访问权限。
- 例如,若要为凭据分配权限,请访问密钥保管库机密
az keyvault set-policy --name MyKeyVault \ --object-id $PRINCIPAL_ID \ --secret-permissions get
拉取映像
使用 Docker 命令按注册表登录服务器名称、存储库名称及其所需标记从缓存中拉取映像。
- 例如,使用给定注册表登录服务器
myregistry.azurecr.cn
的所需标记latest
从存储库hello-world
中拉取映像。
docker pull myregistry.azurecr.cn/hello-world:latest
- 例如,使用给定注册表登录服务器
清理资源
运行 az acr cache list 命令以列出 Azure 容器注册表中的缓存规则。
- 例如,列出给定
MyRegistry
Azure 容器注册表的缓存规则。
az acr cache list -r MyRegistry
- 例如,列出给定
运行 az acr cache delete 命令以删除缓存规则。
- 例如,删除给定
MyRegistry
Azure 容器注册表的缓存规则。
az acr cache delete -r MyRegistry -n MyRule
- 例如,删除给定
运行 az acr credential set list 以列出 Azure 容器注册表中的凭据。
- 例如,列出给定
MyRegistry
Azure 容器注册表的凭据。
az acr credential-set list -r MyRegistry
- 例如,列出给定
运行 az-acr-credential-set-delete 以删除凭据。
- 例如,删除给定
MyRegistry
Azure 容器注册表的凭据。
az acr credential-set delete -r MyRegistry -n MyCredSet
- 例如,删除给定
后续步骤
- 请转到下一篇文章阅读注册表缓存的故障排除指南。