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 pull-gränser som införts av offentliga register. Vi rekommenderar att användarna autentiserar sina cacheregler med sina överordnade källautentiseringsuppgifter. Hämta sedan bilder från den lokala ACR:en för att minska hastighetsbegränsningarna.
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:
Varning
Kunder måste generera autentiseringsuppgifter inställda på källinnehåll från Docker Hub.
Överordnad register | Support | Tillgänglighet |
---|---|---|
Docker Hub | Stöder endast autentiserade hämtningar. | Azure CLI, Azure Portal |
Microsofts artefaktregister | Stöder endast oautentiserade hämtningar. | Azure CLI, Azure Portal |
Offentligt galleri för AWS Elastic Container Registry (ECR) | Stöder endast oautentiserade hämtningar. | Azure CLI, Azure Portal |
GitHub Container Registry | Stöder både autentiserade och oautentiserade hämtningar. | Azure CLI, Azure Portal |
Kaj | Stöder både autentiserade och oautentiserade hämtningar. | Azure CLI, Azure Portal |
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
- Du kan använda Azure Cloud Shell eller en lokal installation av Azure CLI för att köra kommandoexemplen i den här artikeln. Om du vill använda det lokalt krävs version 2.46.0 eller senare. Kör
az --version
för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI. - Du har ett befintligt Key Vault för att lagra autentiseringsuppgifterna. Läs mer om att skapa och lagra autentiseringsuppgifter i ett Key Vault.
- Du kan ange och hämta hemligheter från ditt Key Vault. Läs mer om att ställa in och hämta en hemlighet från Key Vault.
Konfigurera och skapa en cacheregel utan autentiseringsuppgifterna.
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-
- Om du till exempel vill skapa en cacheregel utan autentiseringsuppgifter för ett visst
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
- Om du till exempel vill visa en cacheregel för ett visst
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..
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 MyDockerHubCredSet \ -l docker.io \ -u https://MyKeyvault.vault.azure.net/secrets/usernamesecret \ -p https://MyKeyvault.vault.azure.net/secrets/passwordsecret
- Om du till exempel vill skapa autentiseringsuppgifterna för ett visst
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 MyDockerHubCredSet -p https://MyKeyvault.vault.azure.net/secrets/newsecretname
- Om du till exempel vill uppdatera kv-hemligt ID för användarnamn eller lösenord för autentiseringsuppgifterna för ett visst
Kör az acr credential-set show för att visa autentiseringsuppgifterna.
- Om du till exempel vill visa en autentiseringsuppsättning i ett visst
MyRegistry
Azure Container Registry.
az acr credential-set show -r MyRegistry -n MyDockerHubCredSet
- Om du till exempel vill visa en autentiseringsuppsättning i ett visst
Konfigurera och skapa en cacheregel med autentiseringsuppgifterna
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 MyDockerHubCredSet
- Om du till exempel vill skapa en cacheregel med autentiseringsuppgifterna för ett visst
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
- Om du till exempel vill uppdatera autentiseringsuppgifterna för en cacheregel för ett visst
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
- Om du till exempel vill visa en cacheregel för ett visst
Tilldela behörigheter till Key Vault med hjälp av åtkomstprinciper (äldre)
Hämta huvud-ID:t för systemidentiteten för åtkomst till Key Vault.
PRINCIPAL_ID=$(az acr credential-set show -n MyDockerHubCredSet \ -r MyRegistry \ --query 'identity.principalId' \ -o tsv)
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
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 tagglatest
för en viss registerinloggningsservermyregistry.azurecr.io
.
docker pull myregistry.azurecr.io/hello-world:latest
- Om du till exempel vill hämta avbildningen från lagringsplatsen
Rensa resurserna
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
- Om du till exempel vill visa en lista över cacheregler för ett visst
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
- Om du till exempel vill ta bort en cacheregel för ett visst
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
- Om du till exempel vill visa en lista över autentiseringsuppgifterna för ett visst
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 MyDockerHubCredSet
- Om du till exempel vill ta bort autentiseringsuppgifterna för ett visst
Aktivera artefaktcache – Azure Portal
Du kan aktivera Artefaktcache i Azure Container Registry med eller utan autentisering med hjälp av Azure Portal genom att följa stegen.
Förutsättningar
- Logga in på Azure-portalen
- Du har ett befintligt Key Vault för att lagra autentiseringsuppgifter. Läs mer om att skapa och lagra autentiseringsuppgifter i ett Key Vault.
- Du har befintliga nyckelvalv utan rbac-kontrollerna (Rollbaserad åtkomst).
Konfigurera artefaktcache utan autentiseringsuppgifter
Följ stegen för att skapa en cacheregel i Azure Portal.
Gå till Azure Container Registry.
På sidomenyn, under Tjänsterna, väljer du Cache.
Välj Skapa regel.
Ett fönster för Ny cacheregel visas.
Ange regelnamnet.
Välj Källregister på den nedrullningsbara menyn.
Ange sökvägen till lagringsplatsen till de artefakter som du vill cachelagrar.
Du kan hoppa över autentisering om du inte har åtkomst till en privat lagringsplats eller utför en autentiserad hämtning.
Under Målet anger du namnet på den nya ACR-lagringsplatsens namnområde för att lagra cachelagrade artefakter.
Välj på Spara.
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 tagglatest
för en viss registerinloggningsservermyregistry.azurecr.io
.
docker pull myregistry.azurecr.io/hello-world:latest
- Om du till exempel vill hämta avbildningen från lagringsplatsen
Konfigurera artefaktcache med autentisering
Följ stegen för att skapa en cacheregel i Azure Portal.
Gå till Azure Container Registry.
På sidomenyn, under Tjänsterna, väljer du Cache.
Välj Skapa regel.
Ett fönster för Ny cacheregel visas.
Ange regelnamnet.
Välj Källregister på den nedrullningsbara menyn.
Ange sökvägen till lagringsplatsen till de artefakter som du vill cachelagrar.
Om du vill lägga till autentisering på lagringsplatsen markerar du rutan Autentisering .
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.
Om du har autentiseringsuppgifterna klara väljer du autentiseringsuppgifter från den nedrullningsbara menyn.
Under Målet anger du namnet på den nya ACR-lagringsplatsens namnområde för att lagra cachelagrade artefakter.
Välj på Spara.
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 tagglatest
för en viss registerinloggningsservermyregistry.azurecr.io
.
docker pull myregistry.azurecr.io/hello-world:latest
- Om du till exempel vill hämta avbildningen från lagringsplatsen
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..
Gå till Autentiseringsuppgifter>Skapa autentiseringsuppgifter.
Ange Namn för de nya autentiseringsuppgifterna för källregistret.
Välj en källautentisering. Artefaktcache stöder för närvarande Välj från Key Vault och Ange hemliga URI:er.
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.
Välj på Skapa.
Nästa steg
- Gå vidare till nästa artikel för att gå igenom felsökningsguiden för Registercache.