Delen via


Quickstart: Een Azure-containerregister maken met behulp van Azure Portal

Azure Container Registry is een privéregisterservice voor het bouwen, opslaan en beheren van containerinstallatiekopieën en gerelateerde artefacten. In deze snelle start maakt u een Azure Container Registry-exemplaar met de Azure portal. Vervolgens gebruikt u Docker-commando's om een container-image naar de registry te pushen. Ten slotte haalt u de installatiekopie op uit het register en voert u deze uit.

Vereiste voorwaarden

Als u geen Azure-account hebt, maak dan een gratis account aan voordat u begint.

Als u zich wilt aanmelden bij het register om te werken met containerinstallatiekopieën, moet u voor deze quickstart de Azure CLI uitvoeren, bij voorkeur de meest recente versie. Als u de Azure CLI wilt installeren of upgraden, raadpleegt u Hoe u de Azure CLI installeert.

U moet Docker ook lokaal hebben geïnstalleerd terwijl de daemon wordt uitgevoerd. Docker biedt pakketten die eenvoudig Docker configureren op elk Mac-, Windows- of Linux-systeem.

Een containerregister maken

  1. Meld u aan bij het Azure-portaal.

  2. Selecteer Een resource maken>Infrastructuurdiensten>Container Registry>Maken.

    Schermopname van de optie voor het maken van een nieuwe containerregisterresource in Azure Portal.

  3. Selecteer op het tabblad Basis het abonnement waar u het containerregister wilt maken.

  4. Selecteer Nieuwe maken om een nieuwe resourcegroep te maken en voer myResourceGroup de naam van de resourcegroep in.

  5. Voer een registernaam in. De registernaam moet uniek zijn binnen Azure en moet 5-50 alfanumerieke tekens bevatten, met uitzondering van streepjes (-). Deze naam maakt deel uit van de volledig gekwalificeerde DNS-naam van het register.

  6. Selecteer VS - west 2 voor Locatie en selecteer voor .

  7. Voor het domeinnaamlabelbereik selecteert u Tenant opnieuw gebruiken of kiest u een andere optie, zoals beschreven in de sectie Domeinnaam Label (DNL) configureren.

  8. Voor de modus Machtigingen voor roltoewijzing selecteert u RBAC Registry + ABAC-opslagplaatsmachtigingen om standaard op rollen gebaseerd toegangsbeheer (RBAC) van Microsoft Entra te behouden, terwijl u optioneel toegangsbeheer op basis van Microsoft Entra (ABAC) voorwaarden toepast voor fijnmazig toegangsbeheer op opslagplaatsniveau.

    Schermopname van de instellingen voor het maken van het containerregister in de portal

  9. Laat de andere opties ingesteld op de standaardwaarden en selecteer Beoordelen en maken. Nadat u de instellingen hebt bekeken, selecteert u Maken.

Aanbeveling

In deze quickstart maakt u een standaardregister . Dit is voldoende voor de meeste Azure Container Registry-werkstromen. Voor grotere opslagcapaciteit en beeldverwerking, en mogelijkheden zoals verbinding met een privé-eindpunt, is er de Premium-prijsplanoptie (SKU) beschikbaar. Zie azure Container Registry SKU-functies en -limieten voor meer informatie over servicelagen (SKU's).

Wanneer het bericht Implementatie is voltooid wordt weergegeven, selecteert u Ga naar de resource om uw nieuwe containerregister weer te geven.

Schermopname van de overzichtspagina van een containerregister in Azure Portal.

Noteer de registernaam en de waarde van de aanmeldingsserver. Dit is een volledig gekwalificeerde naam die eindigt azurecr.io op de Azure-cloud.

Gebruik de loginserver in de volgende stappen wanneer u images pusht en ophaalt met Docker, evenals in downstream-referenties zoals Dockerfiles, Kubernetes YAML en Helm charts.

Aanmelden bij register

Voordat u containerimages pusht en pullt, moet u zich aanmelden bij de registry-instantie. Meld u aan bij de Azure CLI op uw lokale computer en voer vervolgens de opdracht az acr login uit.

Geef alleen de naam van de registerresource op wanneer u zich aanmeldt met de Azure CLI, zoals az acr login -n registryname. Gebruik niet de volledig gekwalificeerde aanmeldingsservernaam, zoals registryname.azurecr.io of registryname-hash.azurecr.io (voor DNL-registers).

az acr login --name <registry-name>

Voorbeeld:

az acr login --name contosoacrregistry

De opdracht wordt geretourneerd Login Succeeded wanneer deze is voltooid.

Afbeelding uploaden naar register

Om een image naar een Azure Container Registry te pushen, moet u eerst een image hebben. Als u nog geen lokale containerinstallatiekopieën hebt, voert u de volgende docker-pull-opdracht uit om een bestaande openbare installatiekopie op te halen. Voor dit voorbeeld haalt u de hello-world containerafbeelding op uit Microsoft Container Registry.

docker pull mcr.microsoft.com/hello-world

Voordat u een image naar uw register kunt pushen, moet u deze taggen met behulp van de docker tag met de volledig gekwalificeerde naam van uw registeraanmeldingsserver.

  • De indeling van de aanmeldingsservernaam voor DNL-beveiligde registers (Domain Name Label) met een unieke DNS-naam-hash is mycontainerregistry-abc123.azurecr.ioopgenomen.
  • De indeling van de aanmeldingsservernaam voor registers die zijn gemaakt met de Unsecure DNL-optie is mycontainerregistry.azurecr.io.

Als u bijvoorbeeld een register maakt met het Tenant Reuse DNL-bereik, kan de aanmeldingsserver eruitzien mycontainerregistry-abc123.azurecr.io met een hash in de DNS-naam. Als u een register maakt met de Unsecure DNL-optie, ziet de aanmeldingsserver er als volgt uit mycontainerregistry.azurecr.io, zonder de hash.

Tag de afbeelding met behulp van het commando docker tag met de loginserver van uw registry. Voor deze quickstart tagt u de hello-world afbeelding met v1.

Voorbeeldopdracht om een image te taggen voor een DNL-beschermde registry:

docker tag mcr.microsoft.com/hello-world mycontainerregistry-abc123.azurecr.io/hello-world:v1

Voorbeeldopdracht om een afbeelding te taggen voor een ander dan DNL-register:

docker tag mcr.microsoft.com/hello-world mycontainerregistry.azurecr.io/hello-world:v1

Gebruik ten slotte docker push om de installatiekopie naar het registerexemplaar te pushen. Vervang <login-server> door de aanmeldingsnaam van het registerexemplaar. In dit voorbeeld wordt de hello-world-repository gemaakt, die de hello-world:v1-afbeelding bevat.

docker push <login-server>/hello-world:v1

Nadat u de image naar uw containerregister hebt gepusht, verwijder de hello-world:v1 image uit uw lokale Docker-omgeving met behulp van de docker rmi opdracht. Met deze opdracht wordt de image niet verwijderd uit de hello-world-opslagplaats in uw Azure-containerregister.

docker rmi <login-server>/hello-world:v1

Containera​fbeeldingen weergeven

Om de afbeeldingen in je register weer te geven, ga naar je register in de portal. Selecteer onder Services, repositories, en selecteer vervolgens de hello-world repository die u hebt gemaakt met docker push.

Schermopname van de containerafbeeldingen voor een containerregister in de Azure portal.

Wanneer u de hallo-wereldopslagplaats selecteert, ziet u de v1afbeelding met de tag onder Tags.

Installatiekopie vanuit register uitvoeren

U kunt nu de containerinstallatiekopie hello-world:v1 uit het containerregister ophalen en deze uitvoeren met behulp van docker run:

docker run <login-server>/hello-world:v1  

Voorbeelduitvoer:

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.

[...]

Middelen opschonen

Als u de resources wilt verwijderen die u hebt gemaakt, gaat u naar de resourcegroep myResourceGroup in Azure Portal. Selecteer Resourcegroep verwijderen om de resourcegroep, het containerregister en de containerinstallatiekopieën te verwijderen.

Optie Domain Name Label (DNL) configureren

De functie Domain Name Label (DNL) versterkt de beveiliging door overnameaanvallen van het subdomein van DNS-namen te voorkomen. Deze aanvallen treden op wanneer een register wordt verwijderd en een andere entiteit dezelfde registernaam opnieuw gebruikt, waardoor downstreamverwijzingen mogelijk worden opgehaald uit het register dat opnieuw is gemaakt door de andere entiteit.

DNL lost dit probleem op door een unieke hash toe te voegen aan de DNS-naam van het register. Deze methode zorgt ervoor dat zelfs als een andere entiteit dezelfde registernaam opnieuw gebruikt, de DNS-namen verschillen vanwege de unieke hash. Met deze beveiliging voorkomt u dat uw downstreamverwijzingen per ongeluk verwijzen naar het register dat opnieuw is gemaakt door de andere entiteit.

Wanneer u een register maakt vanuit Azure Portal, selecteert u het bereik van het domeinnaamlabel in de beschikbare opties:

  • Onbeveiligd: hiermee maakt u de DNS-naam as-isop basis van de registernaam (bijvoorbeeld contosoacrregistry.azurecr.io). Deze optie bevat geen DNL-beveiliging.
  • Tenant hergebruik: voegt een unieke hash toe op basis van de tenant- en registernaam, zodat de DNS-naam uniek is binnen de tenant.
  • Abonnement opnieuw gebruiken: voegt een unieke hash toe op basis van het abonnement, de tenant en de registernaam, zodat de DNS-naam uniek is binnen het abonnement.
  • Resourcegroep opnieuw gebruiken: voegt een unieke hash toe op basis van de resourcegroep, het abonnement, de tenant en de registernaam, zodat de DNS-naam uniek is binnen de resourcegroep.
  • Geen hergebruik: genereert een unieke DNS-naam met een unieke hash telkens wanneer u het register maakt, ongeacht andere factoren, zodat de DNS-naam altijd uniek is.

Belangrijk

Het DNL-bereik dat u selecteert tijdens het maken van het register is permanent en kan later niet meer worden gewijzigd. Deze keuze zorgt voor consistent DNS-gedrag en voorkomt onderbrekingen van downstreamverwijzingen.

Voor alle DNL-opties, behalve Onbeveiligd, volgt de DNS-naam de indeling registryname-hash.azurecr.io, waarbij het streepje (-) fungeert als de hashdelineator. Een register met de naam contosoacrregistry van het Tenant Reuse DNL-bereik heeft bijvoorbeeld een DNS-naam zoals contosoacrregistry-abc123.azurecr.io. Om conflicten te voorkomen, is het streepje (-) niet toegestaan in de registernaam.

Als de DNS-naam verschilt van de registernaam, moet u downstreambestanden zoals Dockerfiles, Kubernetes YAML en Helm-grafieken bijwerken om de volledige DNS-naam met de DNL-hash weer te geven. Als u bijvoorbeeld wilt dat uw downstream Dockerfile verwijst naar een register genaamd contosoacrregistry met de DNL-reikwijdte Tenant Reuse, moet u de verwijzing bijwerken naar de volledige waarde, zoals contosoacrregistry-abc123.azurecr.io, in uw downstream Dockerfile.

Volgende stappen