Kayıt defteri oturum açma sorunlarını giderme

Bu makale, Azure kapsayıcı kayıt defterinde oturum açarken karşılaşabileceğiniz sorunları gidermenize yardımcı olur.

Belirtiler

Aşağıdakilerden birini veya daha fazlasını içerebilir:

  • , az acr loginveya her ikisini kullanarak docker loginkayıt defterinde oturum açılamıyor
  • Kayıt defterinde oturum açılamıyor ve hata unauthorized: authentication required alıyorsunuz veya unauthorized: Application not registered with AAD
  • Kayıt defterinde oturum açılamıyor ve Azure CLI hatası alıyorsunuz Could not connect to the registry login server
  • Görüntü gönderilemiyor veya çekilemiyor ve Docker hatası alıyorsunuz unauthorized: authentication required
  • kullanarak az acr login kayıt defterine erişilemiyor ve hata alıyorsunuz CONNECTIVITY_REFRESH_TOKEN_ERROR. Access to registry was denied. Response code: 403. Unable to get admin user credentials with message: Admin user is disabled. Unable to authenticate using AAD or admin login credentials.
  • Azure Kubernetes Service, Azure DevOps veya başka bir Azure hizmetinden kayıt defterine erişilemiyor
  • Kayıt defterine erişilemiyor ve hata Error response from daemon: login attempt failed with status: 403 Forbidden alıyorsunuz - Bkz . Kayıt defteriyle ilgili ağ sorunlarını giderme
  • Azure portal'da kayıt defteri ayarlarına erişilemiyor veya görüntülenemiyor ya da Azure CLI kullanılarak kayıt defteri yönetilemiyor

Nedenler

  • Docker ortamınızda düzgün yapılandırılmadı - çözüm
  • Kayıt defteri yok veya ad yanlış - çözüm
  • Kayıt defteri kimlik bilgileri geçerli değil - çözüm
  • Kayıt defteri genel erişimi devre dışı bırakıldı. Kayıt defterindeki genel ağ erişim kuralları erişimi engelliyor - çözüm
  • Kimlik bilgileri gönderme, çekme veya Azure Resource Manager işlemleri için yetkilendirilmemiş - çözüm
  • Kimlik bilgilerinin süresi doldu - çözüm

Daha fazla tanı

Kayıt defteri ortamının durumu ve isteğe bağlı olarak hedef kayıt defterine erişim hakkında daha fazla bilgi edinmek için az acr check-health komutunu çalıştırın. Örneğin, Docker yapılandırma hatalarını veya Azure Active Directory oturum açma sorunlarını tanılayın.

Komut örnekleri için bkz. Azure kapsayıcı kayıt defterinin durumunu denetleme . Hatalar bildirilirse, önerilen çözümler için hata başvuruyu ve aşağıdaki bölümleri gözden geçirin.

ACR'den AKS kümesine görüntü çekemezseniz AKS destek belgesinden yönergeleri izleyin.

Not

Kayıt defteri erişimini engelleyen güvenlik duvarı veya ağ yapılandırmaları varsa bazı kimlik doğrulama veya yetkilendirme hataları da oluşabilir. Bkz . Kayıt defteriyle ilgili ağ sorunlarını giderme.

Olası çözümler

Docker yapılandırmasını denetleme

Çoğu Azure Container Registry kimlik doğrulama akışı yerel bir Docker yüklemesi gerektirir, böylece görüntüleri gönderme ve çekme gibi işlemler için kayıt defterinizle kimlik doğrulaması yapabilirsiniz. Docker CLI istemcisinin ve daemon'un (Docker Altyapısı) ortamınızda çalıştığını onaylayın. Docker istemci sürümü 18.03 veya üzeri gerekir.

İlgili bağlantılar:

Doğru kayıt defteri adını belirtin

kullanırken docker login, myregistry.azurecr.io gibi kayıt defterinin tam oturum açma sunucusu adını sağlayın. Yalnızca küçük harf kullandığınızdan emin olun. Örnek:

docker login myregistry.azurecr.io

Azure Active Directory kimliğiyle az acr login kullanırken önce Azure CLI'da oturum açın ve ardından kayıt defterinin Azure kaynak adını belirtin. Kaynak adı, kayıt defterim (etki alanı soneki olmadan) gibi kayıt defteri oluşturulduğunda sağlanan addır. Örnek:

az acr login --name myregistry

İlgili bağlantılar:

Kayıt defterine erişmek için kimlik bilgilerini onaylama

Senaryonuz için kullandığınız veya bir kayıt defteri sahibi tarafından size sağlanan kimlik bilgilerinin geçerliliğini denetleyin. Bazı olası sorunlar:

  • Active Directory hizmet sorumlusu kullanıyorsanız, Active Directory kiracısında doğru kimlik bilgilerini kullandığınızdan emin olun:
    • Kullanıcı adı - hizmet sorumlusu uygulama kimliği ( istemci kimliği olarak da adlandırılır)
    • Parola - hizmet sorumlusu parolası ( istemci gizli anahtarı olarak da adlandırılır)
  • Kayıt defterine erişmek için Azure Kubernetes Service veya Azure DevOps gibi bir Azure hizmeti kullanıyorsanız hizmetinizin kayıt defteri yapılandırmasını onaylayın.
  • Docker daemon'ını --expose-token kullanmadan kayıt defteri oturum açma işlemini etkinleştiren seçeneğiyle çalıştıysanızaz acr login, kullanıcı adıyla 00000000-0000-0000-0000-000000000000kimlik doğrulaması yaptığınızdan emin olun.
  • Kayıt defteriniz anonim çekme erişimi için yapılandırılmışsa, önceki bir Docker oturumundan depolanan mevcut Docker kimlik bilgileri anonim erişimi engelleyebilir. Kayıt defterinde anonim bir çekme işlemi denemeden önce komutunu çalıştırın docker logout .

İlgili bağlantılar:

Kimlik bilgilerinin kayıt defterine erişim yetkisi olduğunu onaylayın

Kayıt defterinden görüntü çekmek için Azure rolü veya AcrPush görüntüleri gönderme rolü gibi AcrPull kimlik bilgileriyle ilişkili kayıt defteri izinlerini onaylayın.

Azure CLI kullanarak portal veya kayıt defteri yönetimindeki bir kayıt defterine erişim, Azure Resource Manager işlemlerini gerçekleştirmek için en azından Reader rol veya eşdeğer izinler gerektirir.

İzinleriniz kısa süre önce portalda kayıt defteri erişimine izin verecek şekilde değiştirildiyse, eski tarayıcı önbelleğinden veya tanımlama bilgilerinden kaçınmak için tarayıcınızda gizli veya özel bir oturum denemeniz gerekebilir.

Rol atamalarını eklemek veya kaldırmak için abonelikte sizin veya kayıt defteri sahibinin yeterli ayrıcalıklara sahip olması gerekir.

İlgili bağlantılar:

Kimlik bilgilerinin süresinin dolmadığını denetleyin

Belirteçlerin ve Active Directory kimlik bilgilerinin süresi tanımlı dönemlerden sonra dolabilir ve bu da kayıt defteri erişimini engeller. Erişimi etkinleştirmek için kimlik bilgilerinin sıfırlanması veya yeniden üretilmesi gerekebilir.

  • Kayıt defteri oturum açma işlemi için tek bir AD kimliği, yönetilen kimlik veya hizmet sorumlusu kullanılıyorsa AD belirtecinin süresi 3 saat sonra dolar. Kayıt defterinde yeniden oturum açın.
  • Süresi dolmuş bir istemci gizli dizisi olan bir AD hizmet sorumlusu kullanıyorsanız, abonelik sahibinin veya hesap yöneticisinin kimlik bilgilerini sıfırlaması veya yeni bir hizmet sorumlusu oluşturması gerekir.
  • Depo kapsamlı bir belirteç kullanıyorsanız, kayıt defteri sahibinin parolayı sıfırlaması veya yeni bir belirteç oluşturması gerekebilir.

İlgili bağlantılar:

Gelişmiş sorun giderme

Kayıt defterinde kaynak günlükleri koleksiyonu etkinleştirildiyse ContainerRegistryLoginEvents günlüğünü gözden geçirin. Bu günlük, gelen kimlik ve IP adresi de dahil olmak üzere kimlik doğrulama olaylarını ve durumunu depolar. Kayıt defteri kimlik doğrulaması hataları için günlüğü sorgula.

İlgili bağlantılar:

Sonraki adımlar

Sorununuzu burada çözmezseniz aşağıdaki seçeneklere bakın.