Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Container Registry (ACR), özel bir kayıt defteri hizmetidir. Gönderme veya çekme gibi işlemleri gerçekleştirmek için (anonim çekme işlemi dışında), önce ACR'de kimlik doğrulaması yapmanız gerekir.
Bu makale, ACR kimlik doğrulaması sorunlarını gidermenize yardımcı olur ve kapsayıcı kayıt defterinden görüntü çekerken oluşan en yaygın hataların çözümlerini sağlar.
İlk sorun giderme
Kullandığınız kimlik doğrulama seçeneğini belirleyin. Birini seçtikten sonra, hatayı almak için kimlik doğrulama sorununu yeniden oluşturun.
Azure kapsayıcı kayıt defterinizin durumunu denetleyerek sorun gidermeye başlayın.
Kapsayıcı kayıt defterinin durumunu denetlemek için aşağıdaki komutu çalıştırın:
az acr check-health --name <acr-name> --ignore-errors --yesBir sorun algılanırsa, komut çıkışı bir hata kodu ve açıklama sağlar. Hata kodu ve olası çözümler hakkında daha fazla bilgi için sistem durumu denetimi hata başvurusuna bakın.
Not
Helm veya Noter ile ilgili hatalar alırsanız bu, kapsayıcı kayıt defterinizi veya cihazınızı etkileyen bir sorun olduğu anlamına gelmez. Yalnızca Helm veya Noter'in yüklü olmadığını veya Azure CLI'nin şu anda yüklü olan Helm veya Noter sürümüyle uyumlu olmadığını gösterir.
Hata 1: "DOCKER_COMMAND_ERROR Lütfen Docker istemcisinin yüklü ve çalışır durumda olduğunu doğrulayın"
Hata ayrıntılarına bir örnek aşağıda verilmiştir:
You may want to use 'az acr login -n <acr-name> --expose-token' to get an access token, which does not require Docker to be installed.
<date and time> An error occurred: DOCKER_COMMAND_ERROR
Please verify if Docker client is installed and running.
Çözüm 1: Docker'ın yüklü olduğundan emin olun
komutu az acr login komutunu çağırır docker login ve ACR'de kimlik doğrulaması yapmak için Microsoft Entra erişim belirtecini kullanır. Komutunu çalıştırdığınız makinede Docker istemcisinin ve Docker daemon'un yüklü olmasını gerektirir. Docker'ı yüklemek için bkz . Docker Altyapısını Yükleme.
Çözüm 2: "--expose-token" parametresiyle "az acr login" komutunu kullanın
Docker daemon ortamınızda çalışmadığında, ACR ile kimlik doğrulaması yapmanız gerekiyorsa az acr login komutunu --expose-token parametresiyle kullanın. Bu komut, Docker daemon'ı gerektirmeyen ancak yalnızca Docker CLI'yı (örneğin, Azure Cloud Shell kullanırken) gerektiren betikler çalıştırmanız gerektiğinde yararlıdır.
Hata 2: "Bu komut, Azure Cloud Shell'de desteklenmeyen docker daemon'un çalıştırılmasını gerektirir"
Hata ayrıntılarına bir örnek aşağıda verilmiştir:
This command requires running the docker daemon, which is not supported in Azure Cloud Shell. You may want to use 'az acr login -n <acr-name> --expose-token' to get an access token, which does not require Docker to be installed.
Çözüm 1: "az acr login -n <acr-name>" komutunu başka bir ortamda çalıştırın
Komutun az acr login -n <acr-name> çalışması için Docker istemcisi ve Docker daemon gerekir. Azure Cloud Shell yalnızca Docker istemcisini sağlar. Bu hatayı çözmek için komutunu Docker daemon'unun yüklü olduğu bir ortamda çalıştırın az acr login -n <acr-name> .
Çözüm 2: "--expose-token" parametresiyle "az acr login" komutunu kullanın
Komutun az acr login -n <acr-name> çalışması için Docker istemcisi ve Docker daemon gerekir. Azure Cloud Shell yalnızca Docker istemcisini sağlar. Ancak parametresineaz acr login--expose-token Azure Cloud Shell gibi Docker daemon'ı olmayan ortamlarda çalışır.
Hata 3: "Yetkisiz: kimlik doğrulaması gerekiyor"
Hata ayrıntılarına bir örnek aşağıda verilmiştir:
Error response from daemon: Get "https://<acr-name>.azurecr.io/v2/": unauthorized: {"errors":[{"code":"UNAUTHORIZED","message":"authentication required, visit https://aka.ms/acr/authorization for more information."}]}
Hata, ACR'ye erişilirken kimlik doğrulamasının başarısız olduğunu gösterir. Bu hata, veya az acr login komutu yanlış bir kullanıcı adı ve/veya parolayla veya süresi dolmuş kimlik bilgileriyle (hizmet sorumlusu, kapsam eşlemesi olan bir belirteç veya yönetici kullanıcı kullanılırken) çalıştırılırken docker login oluşabilir.
Çözüm: Doğru/geçerli kullanıcı adı ve parolayı kullanın
Kimlik doğrulaması için yönetici kullanıcı kullanıyorsanız, Erişim anahtarlarıdenetleyin.
Not
Daha önce kullanılan bir parola yeniden oluşturulmuş olabilir.
Kapsam eşlemesiyle ilişkilendirilmiş bir belirteç kullanıyorsanız, kullanılan kimlik bilgilerini denetleyin. Belirteç için bir parola oluşturduktan sonra, bunu almanız ve kimlik bilgilerini güvenli bir şekilde depolamanız gerekir çünkü ekranı kapattıktan sonra parola artık görüntülenmez. Aşağıdaki ekran görüntüsünde iletiye bakın:
Kullandığınız paroladan emin değilseniz parolayı yeniden oluşturmayı göz önünde bulundurun.
Kapsam haritasıyla ilişkilendirilmiş bir belirteç kullanıyorsanız parola için son kullanma tarihi ayarlanabilir. Son kullanma tarihini görüntülemek için, Belirteç ayrıntılarını göster bölümünde açıklanan Azure CLI komutlarını çalıştırabilir veya belirteci Azure portalında açabilir ve aşağıdaki ekran görüntüsüne göre Süre sonu tarihini de kontrol edebilirsiniz:
Hizmet sorumlusu kullanıyorsanız, ACR ile kimlik doğrulaması yapmak için belirli izinlere sahip olduğundan emin olun. Belirli izinleri ve kullanılabilir yerleşik rolleri bulmak için bkz . Azure Container Registry rolleri ve izinleri.
Hizmet sorumlusu kullanıyorsanız kullanılan kimlik bilgilerini denetleyin. Bir gizli dizi oluşturduktan sonra, parola artık ekranı kapattıktan sonra görüntülenmeyacağından, parolayı almanız ve kimlik bilgilerini güvenli bir şekilde depolamanız gerekir. Aşağıdaki ekran görüntüsünde iletiye bakın:
Kullandığınız gizli dizi değerinden emin değilseniz yeni bir gizli dizi oluşturmayı göz önünde bulundurun.
Hizmet sorumlusu kullanıyorsanız gizli dizinin süresinin dolmadığından emin olun.
az ad app credential list komutunu çalıştırarak gizli dizi geçerliliğini de kontrol edebilirsiniz:
az ad app credential list --id "$SP_ID" --query "[].endDateTime" -o tsvİsterseniz, Azure portalında Süre sonu sütununu doğrulayarak gizli dizi geçerliliğini de de kontrol edebilirsiniz:
Gizli dizinin süresi dolduysa yeni bir gizli dizi oluşturmayı düşünebilirsiniz.
Hata 4: "Yönetici kullanıcı kimlik bilgileri alınamıyor"
Hata ayrıntılarına bir örnek aşağıda verilmiştir:
Unable to get AAD authorization tokens with message: <date> <time> An error occurred: CONNECTIVITY_REFRESH_TOKEN_ERROR
Access to registry '<acr-name>.azurecr.io' was denied. Response code: 401. Please try running 'az login' again to refresh permissions.
Unable to get admin user credentials with message: The resource with name '<acr-name>' and type 'Microsoft.ContainerRegistry/registries' could not be found in subscription '<subscription-name> (<subscription-id>)'.
Çözüm: Kullanılan kimliğin belirli izinlere sahip olduğundan emin olun
Kimlik doğrulaması için kullanılan kimliğin (kullanıcı veya yönetilen kimlik gibi) belirli izinlere sahip olduğundan emin olun. Belirli izinleri ve kullanılabilir yerleşik rolleri bulmak için bkz . Azure Container Registry rolleri ve izinleri.
Hata 5: "IP <IP adresi> olan istemciye erişime izin verilmiyor"
Hata ayrıntılarına bir örnek aşağıda verilmiştir:
Unable to get AAD authorization tokens with message: <date> <time> An error occurred: CONNECTIVITY_REFRESH_TOKEN_ERROR
Access to registry '<acr-name>.azurecr.io' was denied. Response code: 403. Please try running 'az login' again to refresh permissions.
Error response from daemon: Get "https://<acr-name>.azurecr.io/v2/": denied: {"errors":[{"code":"DENIED","message":"client with IP \u0027<ip-address>\u0027 is not allowed access. Refer https://aka.ms/acr/firewall to grant access."}]}
Çözüm: Kimlik doğrulaması yapmaya çalıştığınız cihazın ACR ile bağlantısı olduğundan emin olun
ACR,genel erişimi kısıtlamak için bir mekanizma olan yerleşik bir güvenlik duvarına sahiptir. Tam erişime izin verebilir, yalnızca belirli ağlara erişime izin verebilir veya genel erişimi tamamen devre dışı bırakabilir. Ancak, başarılı kimlik doğrulaması için uygun bağlantı gereklidir. IP adresinizin kayıt defterine erişmesine ve oturum açmasına izin verildiğinden emin olun. Genel erişimi yapılandırma hakkında daha fazla bilgi için bkz . Genel IP ağ kurallarını yapılandırma.
Alternatif olarak, Azure kapsayıcı kayıt defterine özel olarak bağlanmak için Azure Özel Bağlantı kullanmayı da düşünebilirsiniz.
Yardım için bize ulaşın
Sorularınız varsa Azure topluluk desteğine sorabilirsiniz. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.