Rozwiązywanie problemów z logowaniem do rejestru
Ten artykuł ułatwia rozwiązywanie problemów, które mogą wystąpić podczas logowania się do rejestru kontenerów platformy Azure.
Objawy
Może zawierać co najmniej jedną z następujących czynności:
- Nie można zalogować się do rejestru przy użyciu polecenia ,
az acr login
lub obu tych elementówdocker login
- Nie można zalogować się do rejestru i występuje błąd
unauthorized: authentication required
lubunauthorized: Application not registered with AAD
- Nie można zalogować się do rejestru i zostanie wyświetlony błąd interfejsu wiersza polecenia platformy Azure
Could not connect to the registry login server
- Nie można wypchnąć lub ściągnąć obrazów i zostanie wyświetlony błąd platformy Docker
unauthorized: authentication required
- Nie można uzyskać dostępu do rejestru przy użyciu polecenia
az acr login
i występuje błądCONNECTIVITY_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.
- Nie można uzyskać dostępu do rejestru z usługi Azure Kubernetes Service, Azure DevOps lub innej usługi platformy Azure
- Nie można uzyskać dostępu do rejestru i występuje błąd
Error response from daemon: login attempt failed with status: 403 Forbidden
— zobacz Rozwiązywanie problemów z siecią w rejestrze - Nie można uzyskać dostępu do ustawień rejestru lub wyświetlić ich w witrynie Azure Portal lub zarządzać rejestrem przy użyciu interfejsu wiersza polecenia platformy Azure
Przyczyny
- Platforma Docker nie jest prawidłowo skonfigurowana w twoim środowisku — rozwiązanie
- Rejestr nie istnieje lub nazwa jest nieprawidłowa — rozwiązanie
- Poświadczenia rejestru nie są prawidłowe — rozwiązanie
- Dostęp publiczny do rejestru jest wyłączony. Reguły dostępu do sieci publicznej w rejestrze uniemożliwiają dostęp — rozwiązanie
- Poświadczenia nie są autoryzowane do operacji wypychania, ściągania ani usługi Azure Resource Manager — rozwiązanie
- Poświadczenia wygasły — rozwiązanie
Dalsza diagnostyka
Uruchom polecenie az acr check-health, aby uzyskać więcej informacji o kondycji środowiska rejestru i opcjonalnie dostęp do rejestru docelowego. Na przykład zdiagnozuj błędy konfiguracji platformy Docker lub problemy z logowaniem w usłudze Microsoft Entra.
Zobacz Sprawdzanie kondycji rejestru kontenerów platformy Azure, aby zapoznać się z przykładami poleceń. Jeśli zgłaszane są błędy, zapoznaj się z dokumentacją błędów i poniższymi sekcjami, aby zapoznać się z zalecanymi rozwiązaniami.
Postępuj zgodnie z instrukcjami z dokumentu pomocy technicznej usługi AKS, jeśli nie można ściągnąć obrazów z usługi ACR do klastra usługi AKS.
Uwaga
Niektóre błędy uwierzytelniania lub autoryzacji mogą również wystąpić, jeśli istnieją konfiguracje zapory lub sieci, które uniemożliwiają dostęp do rejestru. Zobacz Rozwiązywanie problemów z siecią w rejestrze.
Potencjalne rozwiązania
Sprawdzanie konfiguracji platformy Docker
Większość przepływów uwierzytelniania usługi Azure Container Registry wymaga lokalnej instalacji platformy Docker, dzięki czemu można uwierzytelnić się w rejestrze na potrzeby operacji, takich jak wypychanie i ściąganie obrazów. Upewnij się, że w danym środowisku działa klient interfejsu wiersza polecenia platformy Docker i demon (Aparat platformy Docker). Potrzebujesz klienta platformy Docker w wersji 18.03 lub nowszej.
Powiązane linki:
Określ poprawną nazwę rejestru
W przypadku korzystania z programu docker login
podaj pełną nazwę serwera logowania rejestru, na przykład myregistry.azurecr.io. Upewnij się, że używasz tylko małych liter. Przykład:
docker login myregistry.azurecr.io
W przypadku korzystania z polecenia az acr login z tożsamością firmy Microsoft Entra najpierw zaloguj się do interfejsu wiersza polecenia platformy Azure, a następnie określ nazwę zasobu platformy Azure rejestru. Nazwa zasobu to nazwa podana podczas tworzenia rejestru, na przykład myregistry (bez sufiksu domeny). Przykład:
az acr login --name myregistry
Powiązane linki:
Potwierdzanie poświadczeń w celu uzyskania dostępu do rejestru
Sprawdź poprawność poświadczeń używanych w twoim scenariuszu lub zostały ci dostarczone przez właściciela rejestru. Niektóre możliwe problemy:
- W przypadku korzystania z jednostki usługi Active Directory upewnij się, że używasz poprawnych poświadczeń w dzierżawie usługi Active Directory:
- Nazwa użytkownika — identyfikator aplikacji jednostki usługi (nazywany również identyfikatorem klienta)
- Hasło — hasło jednostki usługi (nazywane również wpisem tajnym klienta)
- Jeśli używasz usługi platformy Azure, takiej jak Azure Kubernetes Service lub Azure DevOps, aby uzyskać dostęp do rejestru, potwierdź konfigurację rejestru dla usługi.
- Jeśli uruchomiono
az acr login
polecenie z opcją--expose-token
, która umożliwia logowanie do rejestru bez używania demona platformy Docker, upewnij się, że uwierzytelnisz się przy użyciu nazwy użytkownika00000000-0000-0000-0000-000000000000
. - Jeśli rejestr jest skonfigurowany na potrzeby anonimowego dostępu do ściągania, istniejące poświadczenia platformy Docker przechowywane z poprzedniego logowania platformy Docker mogą uniemożliwić dostęp anonimowy. Uruchom polecenie
docker logout
przed podjęciem próby anonimowej operacji ściągania w rejestrze.
Powiązane linki:
- Omówienie uwierzytelniania
- Logowanie indywidualne przy użyciu identyfikatora Entra firmy Microsoft
- Logowanie przy użyciu jednostki usługi
- Logowanie przy użyciu tożsamości zarządzanej
- Logowanie przy użyciu tokenu o zakresie repozytorium
- Logowanie przy użyciu konta administratora
- Kody błędów uwierzytelniania i autoryzacji usługi Microsoft Entra
- az acr login reference
Potwierdzanie, że poświadczenia są autoryzowane do uzyskiwania dostępu do rejestru
Potwierdź uprawnienia rejestru skojarzone z poświadczeniami, takie jak AcrPull
rola platformy Azure do ściągania obrazów z rejestru, lub AcrPush
rola do wypychania obrazów.
Dostęp do rejestru w portalu lub zarządzaniu rejestrem przy użyciu interfejsu wiersza polecenia platformy Azure wymaga co najmniej Reader
roli lub równoważnych uprawnień do wykonywania operacji usługi Azure Resource Manager.
Jeśli uprawnienia ostatnio uległy zmianie, aby zezwolić na dostęp do rejestru w portalu, może być konieczne wypróbowanie sesji incognito lub prywatnej w przeglądarce, aby uniknąć nieaktualnej pamięci podręcznej lub plików cookie przeglądarki.
Użytkownik lub właściciel rejestru musi mieć wystarczające uprawnienia w subskrypcji, aby dodać lub usunąć przypisania ról.
Powiązane linki:
- Role i uprawnienia platformy Azure — Azure Container Registry
- Logowanie przy użyciu tokenu o zakresie repozytorium
- Dodawanie lub usuwanie przypisań ról platformy Azure przy użyciu witryny Azure Portal
- Użyj portalu, aby utworzyć aplikację Firmy Microsoft Entra i jednostkę usługi, która może uzyskiwać dostęp do zasobów
- Tworzenie nowego klucza tajnego aplikacji
- Kody uwierzytelniania i autoryzacji firmy Microsoft Entra
Sprawdź, czy poświadczenia nie wygasły
Tokeny i poświadczenia usługi Active Directory mogą wygasać po zdefiniowanych okresach, uniemożliwiając dostęp do rejestru. Aby włączyć dostęp, może być konieczne zresetowanie lub ponowne wygenerowanie poświadczeń.
- Jeśli używasz indywidualnej tożsamości usługi AD, tożsamości zarządzanej lub jednostki usługi na potrzeby logowania do rejestru, token usługi AD wygasa po 3 godzinach. Zaloguj się ponownie do rejestru.
- Jeśli używasz jednostki usługi AD z wygasłym kluczem tajnym klienta, właściciel subskrypcji lub administrator konta musi zresetować poświadczenia lub wygenerować nową jednostkę usługi.
- Jeśli używasz tokenu o zakresie repozytorium, właściciel rejestru może wymagać zresetowania hasła lub wygenerowania nowego tokenu.
Powiązane linki:
- Resetowanie poświadczeń jednostki usługi
- Ponowne generowanie haseł tokenu
- Logowanie indywidualne przy użyciu identyfikatora Entra firmy Microsoft
Zaawansowane rozwiązywanie problemów
Jeśli zbieranie dzienników zasobów jest włączone w rejestrze, przejrzyj dziennik ContainerRegistryLoginEvents. Ten dziennik przechowuje zdarzenia i stan uwierzytelniania, w tym tożsamość przychodzącą i adres IP. Wykonaj zapytanie w dzienniku pod kątem błędów uwierzytelniania rejestru.
Powiązane linki:
- Dzienniki oceny diagnostycznej i inspekcji
- Rejestr kontenerów — często zadawane pytania
- Najlepsze rozwiązania dotyczące usługi Azure Container Registry
Następne kroki
Jeśli nie rozwiążesz problemu w tym miejscu, zapoznaj się z następującymi opcjami.
- Inne tematy rozwiązywania problemów z rejestrem obejmują:
- Opcje pomocy technicznej społeczności
- Pytania i odpowiedzi Microsoft
- Otwórz bilet pomocy technicznej — na podstawie podanych informacji może zostać uruchomiona szybka diagnostyka w przypadku niepowodzeń uwierzytelniania w rejestrze