啟用具有驗證的成品快取:Azure CLI
本文是六部分教學課程系列的第五部分。 第一部分提供快取成品快取的概觀,以及其功能、優點和限制。 在第二部分中,您會了解如何使用 Azure 入口網站,以啟用成品快取功能。 在第三部分中,您會了解如何使用 Azure CLI,以啟用成品快取功能。 在第四部分中,您會了解如何使用 Azure 入口網站啟用具有驗證的成品快取功能。
本文將逐步引導您使用 Azure CLI 啟用具有驗證的成品快取。 您必須使用認證以執行已驗證的提取,或存取私人存放庫。
必要條件
- 您可以使用 Azure Cloud Shell,或安裝在本機的 Azure CLI 以執行本文中的命令範例。 如果想要在本機使用,則需要 2.46.0 版或更新版本。 執行
az --version
以尋找版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI。 - 您現有的 Key Vault 可儲存認證。 深入了解如何在 Key Vault 中建立和儲存認證。
- 您可以從 Key Vault 設定和擷取祕密。 深入了解如何從 Key Vault 設定和擷取祕密。
設定具有驗證的成品快取:Azure CLI
建立認證:Azure CLI
設定認證之前,您必須在 Azure KeyVault 中建立和儲存祕密,並從 Key Vault 擷取祕密。 深入了解如何在 Key Vault 中建立和儲存認證,以及從 Key Vault 設定和擷取祕密。
執行 az acr credential set create 命令以建立認證。
- 例如,為指定的
MyRegistry
Azure Container Registry 建立認證。
az acr credential-set create -r MyRegistry \ -n MyRule \ -l docker.io \ -u https://MyKeyvault.vault.azure.net/secrets/usernamesecret \ -p https://MyKeyvault.vault.azure.net/secrets/passwordsecret
- 例如,為指定的
執行 az acr credential set update 以更新認證集上的使用者名稱或密碼 KV 祕密識別碼。
- 例如,為指定的
MyRegistry
Azure Container Registry 更新認證上的使用者名稱或密碼 KV 祕密識別碼。
az acr credential-set update -r MyRegistry -n MyRule -p https://MyKeyvault.vault.azure.net/secrets/newsecretname
- 例如,為指定的
執行 az-acr-credential-set-show 以顯示認證。
- 例如,顯示指定
MyRegistry
Azure Container Registry 的認證。
az acr credential-set show -r MyRegistry -n MyCredSet
- 例如,顯示指定
建立具有認證的快取規則:Azure CLI
執行 az acr cache create 命令以建立快取規則。
- 例如,為指定的
MyRegistry
Azure Container Registry,建立具有認證的快取規則。
az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyCredSet
- 例如,為指定的
執行 az acr cache update 命令,以更新快取規則上的認證。
- 例如,為指定的
MyRegistry
Azure Container Registry 更新快取規則上的認證。
az acr cache update -r MyRegistry -n MyRule -c NewCredSet
- 例如,從指定
MyRegistry
Azure Container Registry 的現有快取規則中移除認證。
az acr cache update -r MyRegistry -n MyRule --remove-cred-set
- 例如,為指定的
執行 az acr cache show 命令以顯示快取規則。
- 例如,顯示指定
MyRegistry
Azure Container Registry 的快取規則。
az acr cache show -r MyRegistry -n MyRule
- 例如,顯示指定
將權限指派給 Key Vault
取得用以存取 Key Vault 的系統身分識別主體標識碼。
PRINCIPAL_ID=$(az acr credential-set show -n MyCredSet \ -r MyRegistry \ --query 'identity.principalId' \ -o tsv)
執行 az keyvault set-policy 命令,以在提取映像之前,將存取權指派給 Key Vault。
- 例如,指派認證存取 KeyVault 祕密的權限
az keyvault set-policy --name MyKeyVault \ --object-id $PRINCIPAL_ID \ --secret-permissions get
提取映像
使用 Docker 命令,依據登錄登入伺服器名稱、存放庫名稱及其所需標籤從快取提取映像。
- 例如,針對指定的登錄登入伺服器
myregistry.azurecr.io
,從所需標籤為latest
的存放庫hello-world
提取映像。
docker pull myregistry.azurecr.io/hello-world:latest
- 例如,針對指定的登錄登入伺服器
清除資源
執行 az acr cache list 命令,以列出 Azure Container Registry 中的快取規則。
- 例如,列出指定
MyRegistry
Azure Container Registry 的快取規則。
az acr cache list -r MyRegistry
- 例如,列出指定
執行 az acr cache delete 命令,以刪除快取規則。
- 例如,刪除指定
MyRegistry
Azure Container Registry 的快取規則。
az acr cache delete -r MyRegistry -n MyRule
- 例如,刪除指定
執行 az acr credential set list,以列出 Azure Container Registry 中的認證。
- 例如,列出指定
MyRegistry
Azure Container Registry 的認證。
az acr credential-set list -r MyRegistry
- 例如,列出指定
執行 az-acr-credential-set-delete 以刪除認證。
- 例如,刪除指定
MyRegistry
Azure Container Registry 的認證。
az acr credential-set delete -r MyRegistry -n MyCredSet
- 例如,刪除指定
下一步
- 請前進到下一篇文章,以查看登錄快取的疑難排解指南。