Felsöka nätverksproblem med registret

Den här artikeln hjälper dig att felsöka problem som kan uppstå vid åtkomst till ett Azure-containerregister i ett virtuellt nätverk eller bakom en brandvägg eller proxyserver.

Symtom

Kan innehålla ett eller flera av följande:

  • Det går inte att skicka eller hämta bilder och du får ett felmeddelande dial tcp: lookup myregistry.azurecr.io
  • Det går inte att skicka eller hämta bilder och du får ett felmeddelande Client.Timeout exceeded while awaiting headers
  • Det går inte att skicka eller hämta avbildningar och du får Azure CLI-fel Could not connect to the registry login server
  • Det går inte att hämta avbildningar från registret till Azure Kubernetes Service eller någon annan Azure-tjänst
  • Det går inte att komma åt ett register bakom en HTTPS-proxy och du får fel Error response from daemon: login attempt failed with status: 403 Forbidden eller Error response from daemon: Get <registry>: proxyconnect tcp: EOF Login failed
  • Det går inte att konfigurera inställningar för virtuellt nätverk och du får ett felmeddelande Failed to save firewall and virtual network settings for container registry
  • Det går inte att komma åt eller visa registerinställningar i Azure-portalen eller hantera registret med hjälp av Azure CLI
  • Det går inte att lägga till eller ändra inställningar för virtuellt nätverk eller regler för offentlig åtkomst
  • ACR-uppgifter kan inte skicka eller hämta bilder
  • Microsoft Defender för molnet kan inte skanna avbildningar i registret eller så visas inte genomsökningsresultat i Microsoft Defender för molnet
  • Du får ett felmeddelande host is not reachable när du försöker komma åt ett register som konfigurerats med en privat slutpunkt.

Orsaker

  • En klientbrandvägg eller proxy förhindrar åtkomst – lösning
  • Regler för åtkomst till offentliga nätverk i registret förhindrar åtkomst – lösning
  • Konfiguration av virtuellt nätverk eller privat slutpunkt förhindrar åtkomst – lösning
  • Du försöker integrera Microsoft Defender för molnet eller vissa andra Azure-tjänster med ett register som har en privat slutpunkt, tjänstslutpunkt eller offentliga IP-åtkomstregler – lösning

Ytterligare diagnos

Kör kommandot az acr check-health för att få mer information om hälsotillståndet för registermiljön och eventuellt åtkomst till ett målregister. Du kan till exempel diagnostisera vissa problem med nätverksanslutning eller konfiguration.

Se Kontrollera hälsotillståndet för ett Azure-containerregister för kommandoexempel. Om fel rapporteras läser du felreferensen och följande avsnitt för rekommenderade lösningar.

Om du har problem med att använda en Azure Kubernetes-tjänst med ett integrerat register kör du kommandot az aks check-acr för att verifiera att AKS-klustret kan nå registret.

Kommentar

Vissa nätverksanslutningssymptom kan också uppstå när det finns problem med registerautentisering eller auktorisering. Se Felsöka registerinloggning.

Potentiella lösningar

Konfigurera åtkomst till klientens brandvägg

Om du vill komma åt ett register bakom en klientbrandvägg eller proxyserver konfigurerar du brandväggsregler för åtkomst till registrets offentliga REST- och dataslutpunkter. Om dedikerade dataslutpunkter är aktiverade behöver du regler för åtkomst:

  • REST-slutpunkt: <registryname>.azurecr.io
  • Dataslutpunkter: <registry-name>.<region>.data.azurecr.io

För ett geo-replikerat register konfigurerar du åtkomst till dataslutpunkten för varje regional replik.

Se till att både Docker-klienten och Docker-daemon har konfigurerats för proxybeteende bakom en HTTPS-proxy. Om du ändrar proxyinställningarna för Docker-daemonen måste du starta om daemonen.

Registerresursloggar i tabellen ContainerRegistryLoginEvents kan hjälpa dig att diagnostisera ett försök till anslutning som blockeras.

Relaterade länkar:

Konfigurera offentlig åtkomst till registret

Om du har åtkomst till ett register via Internet bekräftar du att registret tillåter åtkomst till det offentliga nätverket från klienten. Som standard tillåter ett Azure-containerregister åtkomst till de offentliga registerslutpunkterna från alla nätverk. Ett register kan begränsa åtkomsten till valda nätverk eller valda IP-adresser.

Om registret har konfigurerats för ett virtuellt nätverk med en tjänstslutpunkt inaktiverar inaktivering av åtkomst till offentligt nätverk även åtkomst via tjänstslutpunkten. Om registret har konfigurerats för ett virtuellt nätverk med Private Link gäller inte IP-nätverksreglerna för registrets privata slutpunkter.

Relaterade länkar:

Konfigurera VNet-åtkomst

Bekräfta att det virtuella nätverket har konfigurerats med antingen en privat slutpunkt för Private Link eller en tjänstslutpunkt (förhandsversion). För närvarande stöds inte en Azure Bastion-slutpunkt.

Om en privat slutpunkt har konfigurerats kontrollerar du att DNS löser registrets offentliga fullständiga domännamn, till exempel myregistry.azurecr.io till registrets privata IP-adress.

Granska NSG-regler och tjänsttaggar som används för att begränsa trafik från andra resurser i nätverket till registret.

Om en tjänstslutpunkt till registret har konfigurerats kontrollerar du att en nätverksregel har lagts till i registret som tillåter åtkomst från nätverkets undernät. Tjänstslutpunkten stöder endast åtkomst från virtuella datorer och AKS-kluster i nätverket.

Om du vill begränsa registeråtkomsten med hjälp av ett virtuellt nätverk i en annan Azure-prenumeration kontrollerar du att du registrerar resursprovidern i den prenumerationen Microsoft.ContainerRegistry . Registrera resursprovidern för Azure Container Registry med hjälp av Azure-portalen, Azure CLI eller andra Azure-verktyg.

Om Azure Firewall eller en liknande lösning har konfigurerats i nätverket kontrollerar du att utgående trafik från andra resurser, till exempel ett AKS-kluster, har aktiverats för att nå registerslutpunkterna.

Relaterade länkar:

Konfigurera tjänståtkomst

För närvarande tillåts inte åtkomst till ett containerregister med nätverksbegränsningar från flera Azure-tjänster:

  • Microsoft Defender för molnet kan inte utföra avbildningssårbarhetsgenomsökning i ett register som begränsar åtkomsten till privata slutpunkter, valda undernät eller IP-adresser.
  • Resurser i vissa Azure-tjänster kan inte komma åt ett containerregister med nätverksbegränsningar, inklusive Azure App Service och Azure Container Instances.

Om åtkomst eller integrering av dessa Azure-tjänster med ditt containerregister krävs tar du bort nätverksbegränsningen. Ta till exempel bort registrets privata slutpunkter eller ta bort eller ändra registrets regler för offentlig åtkomst.

Från och med januari 2021 kan du konfigurera ett nätverksbegränsat register för att tillåta åtkomst från utvalda betrodda tjänster.

Relaterade länkar:

Avancerad felsökning

Om insamling av resursloggar är aktiverad i registret läser du loggen ContainterRegistryLoginEvents. Den här loggen lagrar autentiseringshändelser och status, inklusive inkommande identitet och IP-adress. Fråga loggen efter fel vid registerautentisering.

Relaterade länkar:

Nästa steg

Om du inte löser problemet här kan du läsa följande alternativ.