Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Container Registry är en privat registertjänst för att skapa, lagra och hantera containeravbildningar och relaterade artefakter. I den här snabbstarten skapar du en Azure-containerregisterinstans med Azure Portal. Använd sedan Docker-kommandon för att skicka en containeravbildning till registret, och hämta och kör slutligen avbildningen från registret.
För att logga in i registret för att arbeta med containeravbildningar kräver den här snabbstarten att du kör Azure CLI (version 2.0.55 eller senare rekommenderas). Kör az --version för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.
Du måste också ha Docker installerat lokalt med daemonen igång. Docker innehåller paket som enkelt kan konfigurera Docker på en Mac-, Windows- eller Linux-dator.
Logga in på Azure
Logga in på Azure-portalen.
Skapa ett containerregister
Välj Skapa en resurs>Containers>Container Registry.
              
               
              
              
            
Konfigurera containerregisternamn och SKU
På fliken Grundläggande anger du värden för Resursgrupp och Registernamn. Registernamnet måste vara unikt i Azure och innehålla 5–50 alfanumeriska tecken, med bindestreckstecken (-) som inte tillåts i registernamnet. För den här snabbstarten skapar du en ny resursgrupp på platsen West US 2 med namnet myResourceGroup, och för SKU väljer du Standard.
              
               
              
              
            
Mer information om olika SKU-alternativ finns i Azure Container Registry-SKU:er.
Konfigurera alternativet för domännamnetikett (DNL)
Funktionen Domännamnsetikett (DNL) stärker säkerheten genom att förhindra underdomänövertagandeattacker av register-DNS-namn. Dessa attacker inträffar när ett register tas bort och en annan entitet återanvänder samma registernamn, vilket kan leda till att underordnade referenser hämtas från registret som återskapas av den andra entiteten.
DNL åtgärdar detta genom att lägga till en unik hash till registrets DNS-namn. Detta säkerställer att även om samma registernamn återanvänds av en annan entitet skiljer sig DNS-namnen åt på grund av den unika hashen. Detta skyddar dina underordnade referenser från att oavsiktligt peka på registret som återskapats av den andra entiteten.
När du skapar ett register från Portalen väljer du omfånget för domännamnsetiketten bland de tillgängliga alternativen:
- 
              Osäker: Skapar DNS-namnet as-is, baserat på registernamnet (t.ex. contosoacrregistry.azurecr.io). Det här alternativet inkluderar inte DNL-skydd.
- Återanvändning av klientorganisation: Lägger till en unik hash baserat på klient- och registernamnet, vilket säkerställer att DNS-namnet är unikt i klientorganisationen.
- Återanvändning av prenumeration: Lägger till en unik hash baserat på prenumerationen, klientorganisationen och registernamnet, vilket säkerställer att DNS-namnet är unikt i prenumerationen.
- Återanvändning av resursgrupp: Lägger till en unik hash baserat på resursgruppen, prenumerationen, klientorganisationen och registernamnet, vilket säkerställer att DNS-namnet är unikt i resursgruppen.
- Ingen återanvändning: Genererar ett unikt DNS-namn med en unik hash varje gång registret skapas, oavsett andra faktorer, vilket säkerställer att DNS-namnet alltid är unikt.
Anmärkning
Oföränderlig konfiguration: DNL-omfånget som valdes när registret skapades är permanent och kan inte ändras senare. Detta säkerställer konsekvent DNS-beteende och förhindrar avbrott i underordnade referenser.
              
               
              
              
            
DNS-namnkonsekvenser för DNL-alternativ
              DNS-namnformat: För alla DNL-aktiverade alternativ utom Osäker följer DNS-namnet formatet registryname-hash.azurecr.io, där strecket (-) fungerar som hash-delineator. För att undvika konflikter tillåts inte bindestreck (-) i registernamnet. Till exempel har ett register med namnet contosoacrregistry med Tenant Reuse DNL-omfånget ett DNS-namn som contosoacrregistry-e7ggejfuhzhgedc8.azurecr.io.
              Underordnade referenser: DNS-namnet kan skilja sig från registernamnet, vilket kräver uppdateringar i underordnade filer som Dockerfiles, Kubernetes YAML och Helm-diagram för att återspegla det fullständiga DNS-namnet med DNL-hashen. Om du till exempel vill att din underordnade Dockerfile ska referera till ett register med namnet contosoacrregistry med Tenant Reuse DNL-omfånget, måste du uppdatera referensen till contosoacrregistry-e7ggejfuhzhgedc8.azurecr.io i din underordnade Dockerfile.
              
               
              
              
            
Konfigurera behörighetsläge för rolltilldelning
Konfigurera läget "Behörigheter för rolltilldelning" för det nya registret. Det här alternativet avgör hur rollbaserad åtkomstkontroll i Microsoft Entra (RBAC) och rolltilldelningar hanteras för registret, inklusive användning av Microsoft Entra-attributbaserad åtkomstkontroll (ABAC) för Microsoft Entra-lagringsplatsbehörigheter.
Välj "RBAC Registry + ABAC-lagringsplatsbehörigheter" för att behålla standardrolltilldelningar för Microsoft Entra RBAC, samtidigt som du kan använda Microsoft Entra ABAC-villkor för detaljerad åtkomstkontroll på lagringsplatsnivå.
              
               
              
              
            
Mer information om det här alternativet finns i Microsoft Entra-attributbaserad åtkomstkontroll (ABAC) för lagringsplatsbehörigheter.
Att distribuera behållarregister
Acceptera standardvärden för de återstående inställningarna. Välj sedan Granska + skapa. När du har granskat inställningarna väljer du Skapa.
Tips
I den här snabbstarten skapar du ett Standard-register , vilket räcker för de flesta Azure Container Registry-arbetsflöden. Välj andra nivåer för ökat lagrings- och bilddataflöde och funktioner som anslutning med hjälp av en privat slutpunkt. Mer information om tillgängliga tjänstnivåer (SKU:er) finns i Tjänstnivåer för containerregister.
När meddelandet Distribueringen lyckades visas väljer du containerregistret i portalen.
              
               
              
              
            
Anteckna registernamnet och värdet för inloggningsservern, som är ett fullständigt kvalificerat namn som slutar med azurecr.io i Azure-molnet. Om du har valt ett DNL-alternativ innehåller inloggningsservernamnet en unik hash.
Använd inloggningsservern i följande steg när du skickar och hämtar avbildningar med Docker, samt i underordnade referenser som Dockerfiles, Kubernetes YAML och Helm-diagram.
Logga in till registret
Innan du skickar och hämtar containeravbildningar måste du logga in på registerinstansen. Logga in på Azure CLI på din lokala dator och kör sedan kommandot az acr login .
Ange endast namnet på registerresursen när du loggar in med Azure CLI, till exempel az acr login -n registryname. Använd inte det fullständigt kvalificerade inloggningsservernamnet, till exempel registryname.azurecr.io eller registryname-hash.azurecr.io (för DNL-aktiverade register).
az acr login --name <registry-name>
Exempel:
az acr login --name contosoacrregistry
Kommandot returnerar Login Succeeded när det har slutförts.
Ladda upp avbildningen till registret
Innan du kan skicka en avbildning till ett Azure Container Registry, måste du först ha en avbildning. Om du ännu inte har några lokala containeravbildningar kör du följande docker pull-kommando för att hämta en befintlig offentlig avbildning. I det här exemplet hämtar du avbildningen hello-world från Microsoft Container Registry.
docker pull mcr.microsoft.com/hello-world
Innan du kan skicka en avbildning till registret måste du tagga den med hjälp av docker-taggen med det fullständigt kvalificerade namnet på registerinloggningsservern.
- Inloggningsserverns namnformat för domännamnsetiketter (DNL) skyddade register med en unik DNS-namnhash som ingår är mycontainerregistry-abc123.azurecr.io.
- Namnformatet för inloggningsservern för register som skapats med UnsecureDNL-alternativet ärmycontainerregistry.azurecr.io.
Om ditt register till exempel har skapats med Tenant Reuse DNL-omfånget kan inloggningsservern se ut som mycontainerregistry-abc123.azurecr.io med en hash i DNS-namnet. Om registret skapades med Unsecure DNL-alternativet skulle inloggningsservern se ut som mycontainerregistry.azurecr.io utan hashen.
Mer information om DNL-alternativ när registret skapas och DNS-namnkonsekvenser finns i Snabbstart – Skapa register i portalen.
Exempel: Tagga en bild före push-överföring
Tagga avbildningen med hjälp av docker-taggkommandot med hjälp av registrets inloggningsserver.
Taggningsbild för ett icke-DNL-register:
docker tag mcr.microsoft.com/hello-world mycontainerregistry.azurecr.io/hello-world:v1
Taggningsbild för ett DNL-aktiverat register:
docker tag mcr.microsoft.com/hello-world mycontainerregistry-abc123.azurecr.io/hello-world:v1
Slutligen använder du docker push för att pusha avbildningen till registerinstans. Ersätt <login-server> med inloggningsservernamnet för registerinstansen. Det här exemplet skapar lagringsplatsen hello-world, som innehåller hello-world:v1-avbildningen.
docker push <login-server>/hello-world:v1
När du har push-överfört avbildningen till containerregistret tar du bort hello-world:v1-avbildningen från den lokala Docker-miljön. (Observera att det här docker rmi-kommandot inte tar bort avbildningen från hello-world-lagringsplatsen i Azure-containerregistret .)
docker rmi <login-server>/hello-world:v1
Visa lista över containeravbildningar
Om du vill visa en lista över avbildningarna i registret går du till registret i portalen och väljer Lagringsplatser och väljer sedan den hello-world-lagringsplats som du skapade med docker push.
              
               
              
              
            
När du väljer lagringsplatsen hello-world visas den taggade avbildningen v1under Taggar.
Kör en avbild från ett register
Nu kan du hämta och köra hello-world:v1-containeravbildningen från containerregistret med hjälp av docker run:
docker run <login-server>/hello-world:v1  
Exempel på utdata>
Unable to find image 'mycontainerregistry.azurecr.io/hello-world:v1' locally
v1: Pulling from hello-world
Digest: sha256:662dd8e65ef7ccf13f417962c2f77567d3b132f12c95909de6c85ac3c326a345
Status: Downloaded newer image for mycontainerregistry.azurecr.io/hello-world:v1
Hello from Docker!
This message shows that your installation appears to be working correctly.
[...]
Rensa resurser
Om du vill rensa dina resurser går du till resursgruppen myResourceGroup i portalen. När resursgruppen har lästs in klickar du på Ta bort resursgrupp för att ta bort resursgruppen, containerregistret och containeravbildningarna som lagras där.
              
               
              
              
            
Nästa steg
I den här snabbstarten skapade du ett Azure Container Registry med Azure-portalen, push-överförde en containeravbildning och hämtade och körde avbildningen från registret. Fortsätt till självstudien om Azure Container Registry om du vill titta närmare på ACR.