Dela via


Artefaktcache i Azure Container Registry

Med funktionen Artefaktcache kan användare cachelagrar containeravbildningar i ett privat containerregister. Artefaktcache är tillgängligt på tjänstnivåerna Basic, Standard och Premium.

Artefaktcache förbättrar hantering av containeravbildningar genom att tillhandahålla en cachelagringslösning för både offentliga och privata lagringsplatser.

Artefaktcache erbjuder snabbare och mer tillförlitliga pull-åtgärder via Azure Container Registry (ACR), med funktioner som geo-replikering och tillgänglighetszonstöd för hämtning av avbildningar med högre tillgänglighet och hastighet.

Med artefaktcache kan cachelagrade register vara tillgängliga via privata nätverk så att användarna smidigt kan anpassa sig till brandväggskonfigurationer och efterlevnadsstandarder.

Artefaktcache hanterar utmaningen med anonyma pull-gränser som införts av offentliga register som Docker Hub. Genom att tillåta användare att hämta bilder från den lokala ACR:en kringgår den dessa gränser, säkerställer oavbruten innehållsleverans från uppströmskällor och eliminerar oron för att nå pull-gränserna.

Terminologi

  • Cacheregel – en cacheregel är en regel som du kan skapa för att hämta artefakter från en lagringsplats som stöds till din cache.

    • En cacheregel innehåller fyra delar:

      • Regelnamn – namnet på cacheregeln. Exempel: Hello-World-Cache

      • Källa – namnet på källregistret.

      • Sökväg till lagringsplats – källsökvägen för lagringsplatsen för att hitta och hämta artefakter som du vill cachelagrar. Exempel: docker.io/library/hello-world

      • Nytt namnområde för ACR-lagringsplats – namnet på den nya lagringsplatsens sökväg för att lagra artefakter. Exempel: hello-world Lagringsplatsen kan inte redan finnas i ACR-instansen.

  • Merit

    • Autentiseringsuppgifter är en uppsättning användarnamn och lösenord för källregistret. Du behöver autentiseringsuppgifter för att autentisera med en offentlig eller privat lagringsplats. Autentiseringsuppgifterna innehåller fyra delar

      • Autentiseringsuppgifter – namnet på dina autentiseringsuppgifter.

      • Inloggningsserver för källregister – inloggningsservern för källregistret.

      • Källautentisering – nyckelvalvets platser där autentiseringsuppgifter ska lagras.

      • Användarnamn och lösenordshemligheter – Hemligheterna som innehåller användarnamnet och lösenordet.

Begränsningar

  • Cacheminnet sker endast när minst en avbildningshämtning har slutförts på den tillgängliga containeravbildningen. För varje ny avbildning som är tillgänglig måste en ny avbildningshämtning vara klar. Artefaktcachen hämtar inte automatiskt nya taggar av bilder när en ny tagg är tillgänglig. Den finns med i översikten men stöds inte i den här versionen.

  • Artefaktcache stöder endast 1 000 cacheregler.

Stöd för överordnad

Artefaktcache stöder för närvarande följande överordnade register:

Överordnad register Support Tillgänglighet
Docker Hub Stöder både autentiserade och oautentiserade hämtningar. Azure CLI, Azure-portalen
Microsoft Artifact Registry Stöder endast oautentiserade hämtningar. Azure CLI, Azure-portalen
Offentligt galleri för AWS Elastic Container Registry (ECR) Stöder endast oautentiserade hämtningar. Azure CLI, Azure-portalen
GitHub Container Registry Stöder både autentiserade och oautentiserade hämtningar. Azure CLI, Azure-portalen
Nvidia Stöder både autentiserade och oautentiserade hämtningar. Azure CLI
Kaj Stöder både autentiserade och oautentiserade hämtningar. Azure CLI, Azure-portalen
registry.k8s.io Stöder både autentiserade och oautentiserade hämtningar. Azure CLI
Google Container Registry Stöder både autentiserade och oautentiserade hämtningar. Azure CLI

Jokertecken

Jokertecken använder asterisker (*) för att matcha flera sökvägar i containeravbildningsregistret. Artefaktcache stöder för närvarande följande jokertecken:

Kommentar

Cachereglerna mappas från mållagringsplatsen => källlagringsplatsen.

Jokertecken på registernivå

Med jokertecknet på registernivå kan du cachelagrat alla lagringsplatser från ett uppströmsregister.

Cacheregel Mappning Exempel
contoso.azurecr.io/* => mcr.microsoft.com/* Mappning för alla bilder under ACR till MCR. contoso.azurecr.io/myapp/image1 => mcr.microsoft.com/myapp/image1
contoso.azurecr.io/myapp/image2 => mcr.microsoft.com/myapp/image2

Jokertecken på lagringsplatsnivå

Med jokertecken på lagringsplatsnivå kan du cachelagrat alla lagringsplatser från en överordnad registermappning till lagringsplatsprefixet.

Cacheregel Mappning Exempel
contoso.azurecr.io/dotnet/* => mcr.microsoft.com/dotnet/* Mappa specifika lagringsplatser under ACR till motsvarande lagringsplatser i MCR. contoso.azurecr.io/dotnet/sdk => mcr.microsoft.com/dotnet/sdk
contoso.azurecr.io/dotnet/runtime => mcr.microsoft.com/dotnet/runtime
contoso.azurecr.io/library/dotnet/* => mcr.microsoft.com/dotnet/*
contoso.azurecr.io/library/python/* => docker.io/library/python/*
Mappa specifika lagringsplatser under ACR till lagringsplatser från olika överordnade register. contoso.azurecr.io/library/dotnet/app1 => mcr.microsoft.com/dotnet/app1
contoso.azurecr.io/library/python/app3 => docker.io/library/python/app3

Begränsningar för jokerteckenbaserade cacheregler

Cacheregler för jokertecken använder asterisker (*) för att matcha flera sökvägar i containeravbildningsregistret. Dessa regler kan inte överlappa andra regler för jokerteckencache. Om du har en cacheregel för jokertecken för en viss registersökväg kan du med andra ord inte lägga till en annan jokerteckenregel som överlappar den.

Här följer några exempel på överlappande regler:

Exempel 1:

Befintlig cacheregel: contoso.azurecr.io/* => mcr.microsoft.com/*
Ny cache läggs till: contoso.azurecr.io/library/* => docker.io/library/*

Tillägget av den nya cacheregeln blockeras eftersom mållagringsplatsens sökväg contoso.azurecr.io/library/* överlappar den befintliga jokerteckenregeln contoso.azurecr.io/*.

Exempel 2:

Befintlig cacheregel: contoso.azurecr.io/library/* =>mcr.microsoft.com/library/*
Ny cache läggs till: contoso.azurecr.io/library/dotnet/* =>docker.io/library/dotnet/*

Tillägget av den nya cacheregeln blockeras eftersom mållagringsplatsens sökväg contoso.azurecr.io/library/dotnet/* överlappar den befintliga jokerteckenregeln contoso.azurecr.io/library/*.

Begränsningar för regler för statisk/fast cache

Statiska eller fasta cacheregler är mer specifika och använder inte jokertecken. De kan överlappa med jokerteckenbaserade cacheregler. Om en cacheregel anger en fast lagringsplatssökväg tillåter den överlappning med en jokerteckenbaserad cacheregel.

Exempel 1:

Befintlig cacheregel: contoso.azurecr.io/* =>mcr.microsoft.com/*
Ny cache läggs till: contoso.azurecr.io/library/dotnet =>docker.io/library/dotnet

Tillägget av den nya cacheregeln tillåts eftersom contoso.azurecr.io/library/dotnet är en statisk sökväg och kan överlappa med regeln contoso.azurecr.io/*för jokerteckencache .

Aktivera artefaktcache – Azure CLI

Du kan aktivera Artefaktcache i Azure Container Registry med eller utan autentisering med hjälp av Azure CLI genom att följa stegen.

Förutsättningar

Konfigurera och skapa en cacheregel utan autentiseringsuppgifterna.

  1. Kör kommandot az acr Cache create för att skapa en cacheregel.

    • Om du till exempel vill skapa en cacheregel utan autentiseringsuppgifter för ett visst MyRegistry Azure Container Registry.
    az acr Cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu-
    
  2. Kör kommandot az acr Cache show för att visa en cacheregel.

    • Om du till exempel vill visa en cacheregel för ett visst MyRegistry Azure Container Registry.
     az acr Cache show -r MyRegistry -n MyRule
    

Skapa autentiseringsuppgifterna

Innan du konfigurerar autentiseringsuppgifterna måste du skapa och lagra hemligheter i Azure KeyVault och hämta hemligheterna från Key Vault. Läs mer om att skapa och lagra autentiseringsuppgifter i ett Key Vault. Och för att ange och hämta en hemlighet från Key Vault..

  1. Kör kommandot az acr credential set create för att skapa autentiseringsuppgifterna.

    • Om du till exempel vill skapa autentiseringsuppgifterna för ett visst 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
    
  2. Kör az acr credential set update för att uppdatera kv-hemligt ID för användarnamn eller lösenord på en uppsättning autentiseringsuppgifter.

    • Om du till exempel vill uppdatera kv-hemligt ID för användarnamn eller lösenord för autentiseringsuppgifterna för ett visst MyRegistry Azure Container Registry.
    az acr credential-set update -r MyRegistry -n MyRule -p https://MyKeyvault.vault.azure.net/secrets/newsecretname
    
  3. Kör az-acr-credential-set-show för att visa autentiseringsuppgifterna.

    • Om du till exempel vill visa autentiseringsuppgifterna för ett visst MyRegistry Azure Container Registry.
    az acr credential-set show -r MyRegistry -n MyCredSet
    

Konfigurera och skapa en cacheregel med autentiseringsuppgifterna

  1. Kör kommandot az acr cache create för att skapa en cacheregel.

    • Om du till exempel vill skapa en cacheregel med autentiseringsuppgifterna för ett visst MyRegistry Azure Container Registry.
    az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyCredSet
    
  2. Kör kommandot az acr cache update för att uppdatera autentiseringsuppgifterna för en cacheregel.

    • Om du till exempel vill uppdatera autentiseringsuppgifterna för en cacheregel för ett visst MyRegistry Azure Container Registry.
    az acr cache update -r MyRegistry -n MyRule -c NewCredSet
    
    • Om du till exempel vill ta bort autentiseringsuppgifterna från en befintlig cacheregel för ett visst MyRegistry Azure Container Registry.
    az acr cache update -r MyRegistry -n MyRule --remove-cred-set
    
  3. Kör kommandot az acr cache show för att visa en cacheregel.

    • Om du till exempel vill visa en cacheregel för ett visst MyRegistry Azure Container Registry.
     az acr cache show -r MyRegistry -n MyRule
    

Tilldela behörigheter till Key Vault

  1. Hämta huvud-ID:t för systemidentiteten för åtkomst till Key Vault.

    PRINCIPAL_ID=$(az acr credential-set show 
                    -n MyCredSet \ 
                    -r MyRegistry  \
                    --query 'identity.principalId' \ 
                    -o tsv) 
    
  2. Kör kommandot az keyvault set-policy för att tilldela åtkomst till Key Vault innan du hämtar avbildningen.

    • Om du till exempel vill tilldela behörigheter för autentiseringsuppgifterna får du åtkomst till KeyVault-hemligheten
    az keyvault set-policy --name MyKeyVault \
    --object-id $PRINCIPAL_ID \
    --secret-permissions get
    

Hämta avbildningen

  1. Hämta avbildningen från cachen med kommandot Docker efter namnet på registerinloggningsservern, lagringsplatsens namn och önskad tagg.

    • Om du till exempel vill hämta avbildningen från lagringsplatsen hello-world med önskad tagg latest för en viss registerinloggningsserver myregistry.azurecr.io.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Rensa resurserna

  1. Kör kommandot az acr cache list för att visa cachereglerna i Azure Container Registry.

    • Om du till exempel vill visa en lista över cacheregler för ett visst MyRegistry Azure Container Registry.
     az acr cache list -r MyRegistry
    
  2. Kör kommandot az acr cache delete för att ta bort en cacheregel.

    • Om du till exempel vill ta bort en cacheregel för ett visst MyRegistry Azure Container Registry.
    az acr cache delete -r MyRegistry -n MyRule
    
  3. Körlistan az acr credential set för att visa autentiseringsuppgifterna i ett Azure Container Registry.

    • Om du till exempel vill visa en lista över autentiseringsuppgifterna för ett visst MyRegistry Azure Container Registry.
    az acr credential-set list -r MyRegistry
    
  4. Kör az-acr-credential-set-delete för att ta bort autentiseringsuppgifterna.

    • Om du till exempel vill ta bort autentiseringsuppgifterna för ett visst MyRegistry Azure Container Registry.
    az acr credential-set delete -r MyRegistry -n MyCredSet
    

Aktivera Artefaktcache – Azure-portalen

Du kan aktivera Artefaktcache i Azure Container Registry med eller utan autentisering med hjälp av Azure-portalen genom att följa stegen.

Förutsättningar

Konfigurera artefaktcache utan autentiseringsuppgifter

Följ stegen för att skapa en cacheregel i Azure-portalen.

  1. Gå till Azure Container Registry.

  2. På sidomenyn, under Tjänsterna, väljer du Cache.

    Skärmbild för Registercache i Azure-portalen.

  3. Välj Skapa regel.

    Skärmbild för Skapa regel i Azure-portalen.

  4. Ett fönster för Ny cacheregel visas.

    Skärmbild för den nya cacheregeln i Azure-portalen.

  5. Ange regelnamnet.

  6. Välj Källregister på den nedrullningsbara menyn.

  7. Ange sökvägen till lagringsplatsen till de artefakter som du vill cachelagrar.

  8. Du kan hoppa över autentisering om du inte har åtkomst till en privat lagringsplats eller utför en autentiserad hämtning.

  9. Under Målet anger du namnet på den nya ACR-lagringsplatsens namnområde för att lagra cachelagrade artefakter.

    Skärmbild för att spara cacheregeln i Azure-portalen.

  10. Välj på Spara.

  11. Hämta avbildningen från cachen med kommandot Docker efter namnet på registerinloggningsservern, lagringsplatsens namn och önskad tagg.

    • Om du till exempel vill hämta avbildningen från lagringsplatsen hello-world med önskad tagg latest för en viss registerinloggningsserver myregistry.azurecr.io.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Konfigurera artefaktcache med autentisering

Följ stegen för att skapa en cacheregel i Azure-portalen.

  1. Gå till Azure Container Registry.

  2. På sidomenyn, under Tjänsterna, väljer du Cache.

    Skärmbild för Registercache i Azure-portalen.

  3. Välj Skapa regel.

    Skärmbild för Skapa regel i Azure-portalen.

  4. Ett fönster för Ny cacheregel visas.

    Skärmbild för ny cacheregel med autentisering i Azure-portalen.

  5. Ange regelnamnet.

  6. Välj Källregister på den nedrullningsbara menyn.

  7. Ange sökvägen till lagringsplatsen till de artefakter som du vill cachelagrar.

  8. Om du vill lägga till autentisering på lagringsplatsen markerar du rutan Autentisering .

  9. Välj Skapa nya autentiseringsuppgifter för att skapa en ny uppsättning autentiseringsuppgifter för att lagra användarnamnet och lösenordet för källregistret. Lär dig hur du skapar nya autentiseringsuppgifter.

  10. Om du har autentiseringsuppgifterna klara väljer du autentiseringsuppgifter från den nedrullningsbara menyn.

  11. Under Målet anger du namnet på den nya ACR-lagringsplatsens namnområde för att lagra cachelagrade artefakter.

    Skärmbild för att spara cacheregeln i Azure-portalen.

  12. Välj på Spara.

  13. Hämta avbildningen från cachen med kommandot Docker efter namnet på registerinloggningsservern, lagringsplatsens namn och önskad tagg.

    • Om du till exempel vill hämta avbildningen från lagringsplatsen hello-world med önskad tagg latest för en viss registerinloggningsserver myregistry.azurecr.io.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Skapa nya autentiseringsuppgifter

Innan du konfigurerar autentiseringsuppgifterna måste du skapa och lagra hemligheter i Azure KeyVault och hämta hemligheterna från Key Vault. Läs mer om att skapa och lagra autentiseringsuppgifter i ett Key Vault. Och för att ange och hämta en hemlighet från Key Vault..

  1. Gå till Autentiseringsuppgifter>Skapa autentiseringsuppgifter.

    Skärmbild för att lägga till autentiseringsuppgifter i Azure-portalen.

    Skärmbild för att skapa nya autentiseringsuppgifter i Azure-portalen.

  2. Ange Namn för de nya autentiseringsuppgifterna för källregistret.

  3. Välj en källautentisering. Artefaktcache stöder för närvarande Välj från Key Vault och Ange hemliga URI:er.

  4. För alternativet Välj från Key Vault kan du läsa mer om hur du skapar autentiseringsuppgifter med hjälp av key vault.

  5. Välj på Skapa.

Nästa steg

  • Gå vidare till nästa artikel för att gå igenom felsökningsguiden för Registercache.