Containerinstallatiekopieën importeren in een containerregister
U kunt eenvoudig containerinstallatiekopieën importeren (kopiëren) naar een Azure-containerregister zonder Docker-opdrachten te gebruiken. Importeer bijvoorbeeld installatiekopieën uit een ontwikkelingsregister naar een productieregister of kopieer basisinstallatiekopieën uit een openbaar register.
Azure Container Registry verwerkt veel veelvoorkomende scenario's voor het kopiëren van installatiekopieën en andere artefacten uit een bestaand register:
Installatiekopieën importeren uit een openbaar register
Installatiekopieën of OCI-artefacten importeren, waaronder Helm 3-grafieken uit een ander Azure-containerregister, in hetzelfde, of een ander Azure-abonnement of een andere Azure-tenant
Importeren uit een niet-Azure-privécontainerregister
Het importeren van installatiekopieën in een Azure-containerregister heeft de volgende voordelen ten opzichte van het gebruik van Docker CLI-opdrachten:
Als uw clientomgeving geen lokale Docker-installatie nodig heeft, kunt u elke containerinstallatiekopie importeren, ongeacht het ondersteunde type besturingssysteem.
Als u installatiekopieën met meerdere architectuur (zoals officiële Docker-installatiekopieën) importeert, worden installatiekopieën voor alle architecturen en platforms die zijn opgegeven in de manifestlijst gekopieerd.
Als u toegang hebt tot het doelregister, hebt u het openbare eindpunt van het register niet nodig.
Belangrijk
- Voor het importeren van installatiekopieën is rfc 7233 vereist voor het externe register. U wordt aangeraden een register te gebruiken dat RFC 7233-bereiken ondersteunt tijdens het gebruik van de opdracht az acr import met de register-URI om fouten te voorkomen.
Beperkingen
- Het maximum aantal manifesten voor een geïmporteerde afbeelding is 50.
- De maximale laaggrootte voor een installatiekopieën die zijn geïmporteerd uit een openbaar register, is 2 GiB.
Als u containerinstallatiekopieën wilt importeren, moet u de Azure CLI uitvoeren in Azure Cloud Shell of lokaal (versie 2.0.55 of hoger aanbevolen). Voer az --version
uit om de versie te bekijken. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.
Notitie
Als u identieke containerinstallatiekopieën wilt distribueren over meerdere Azure-regio's, biedt Azure Container Registry ook ondersteuning voor geo-replicatie. Door geo-replicatie van een register (Premium-servicelaag vereist) kunt u meerdere regio's met identieke installatiekopieën en tagnamen uit één register bedienen.
Belangrijk
Wijzigingen in het importeren van installatiekopieën tussen twee Azure-containerregisters zijn geïntroduceerd vanaf januari 2021:
- Importeren naar of van een azure-containerregister met netwerkbeperking vereist dat het beperkte register toegang toestaat door vertrouwde services om het netwerk te omzeilen. De instelling is standaard ingeschakeld, waardoor importeren is toegestaan. Als de instelling niet is ingeschakeld in een nieuw register met een privé-eindpunt of met registerfirewallregels, mislukt het importeren.
- In een bestaand azure-containerregister met netwerkbeperking dat wordt gebruikt als importbron of doel, is het inschakelen van deze netwerkbeveiligingsfunctie optioneel, maar wordt aanbevolen.
Vereisten
Als u nog geen Azure-containerregister hebt, maakt u een register. Zie Quickstart: Een privécontainerregister maken met behulp van de Azure CLI voor stappen.
Als u een installatiekopie wilt importeren in een Azure-containerregister, moet uw identiteit schrijfmachtigingen hebben voor het doelregister (ten minste de rol Inzender of een aangepaste rol waarmee de importImage-actie wordt toegestaan). Zie Azure Container Registry-rollen en -machtigingen.
Importeren uit een openbaar register
Belangrijk
Als u wilt importeren uit een openbaar register naar een azure-containerregister met netwerkbeperking, moet het beperkte register toegang verlenen door vertrouwde services om het netwerk te omzeilen. De instelling is standaard ingeschakeld, waardoor importeren is toegestaan. Als de instelling niet is ingeschakeld in een nieuw register met een privé-eindpunt of met registerfirewallregels, mislukt het importeren.
Importeren vanuit Docker Hub
Gebruik bijvoorbeeld de opdracht az acr import om de installatiekopie voor meerdere architectuur hello-world:latest
uit Docker Hub te importeren in een register met de naam myregistry. Omdat hello-world
dit een officiële installatiekopieën is van Docker Hub, bevindt deze installatiekopieën zich in de standaardopslagplaats library
. Neem de naam van de opslagplaats en eventueel een tag op in de waarde van de parameter van de --source
installatiekopieën. (U kunt desgewenst een afbeelding identificeren op basis van de manifestsamenvating in plaats van tag, waardoor een bepaalde versie van een installatiekopieën wordt gegarandeerd.)
az acr import \
--name myregistry \
--source docker.io/library/hello-world:latest \
--image hello-world:latest
U kunt controleren of er meerdere manifesten zijn gekoppeld aan deze installatiekopieën door de opdracht az acr manifest list-metadata uit te voeren:
az acr manifest list-metadata \
--name hello-world \
--registry myregistry
Een artefact importeren door samenvatting zonder een tag toe te voegen:
az acr import \
--name myregistry \
--source docker.io/library/hello-world@sha256:abc123 \
--repository hello-world
Als u een Docker Hub-account hebt, raden we u aan de referenties te gebruiken bij het importeren van een installatiekopieën uit Docker Hub. Geef de Docker Hub-gebruikersnaam en het wachtwoord of een persoonlijk toegangstoken door als parameters.az acr import
In het volgende voorbeeld wordt een openbare installatiekopieën uit de tensorflow
opslagplaats in Docker Hub geïmporteerd met behulp van Docker Hub-referenties:
az acr import \
--name myregistry \
--source docker.io/tensorflow/tensorflow:latest-gpu \
--image tensorflow:latest-gpu
--username <Docker Hub user name>
--password <Docker Hub token>
Importeren uit Microsoft Container Registry
Importeer bijvoorbeeld de ltsc2019
Windows Server Core-installatiekopieën uit de windows
opslagplaats in Microsoft Container Registry.
az acr import \
--name myregistry \
--source mcr.microsoft.com/windows/servercore:ltsc2019 \
--image servercore:ltsc2019
Importeren uit een Azure-containerregister in dezelfde AD-tenant
U kunt een installatiekopieën importeren uit een Azure-containerregister in dezelfde AD-tenant met behulp van geïntegreerde Microsoft Entra-machtigingen.
Uw identiteit moet microsoft Entra-machtigingen hebben om te lezen uit het bronregister (lezerrol) en om te importeren in het doelregister (inzenderrol of een aangepaste rol waarmee de importImage-actie kan worden uitgevoerd).
Het register kan zich in hetzelfde of een ander Azure-abonnement in dezelfde Active Directory-tenant bevinden.
Openbare toegang tot het bronregister is uitgeschakeld. Als openbare toegang is uitgeschakeld, geeft u het bronregister op resource-id op in plaats van op de aanmeldingsservernaam van het register.
Het bronregister en/of het doelregister met een privé-eindpunt of registerfirewallregels moeten ervoor zorgen dat het beperkte register vertrouwde services toegang geeft tot het netwerk.
Importeren uit een register in hetzelfde abonnement
Importeer bijvoorbeeld de aci-helloworld:latest
installatiekopie uit een bronregister mysourceregistry in myregistry in hetzelfde Azure-abonnement.
az acr import \
--name myregistry \
--source mysourceregistry.azurecr.io/aci-helloworld:latest \
--image aci-helloworld:latest
In het volgende voorbeeld wordt de aci-helloworld:latest
installatiekopie geïmporteerd in myregistry uit een bronregister waarin de toegang tot het openbare eindpunt van het register is uitgeschakeld. Geef de resource-id van het bronregister op met de --registry
parameter. U ziet dat de --source
parameter alleen de bronopslagplaats en tag opgeeft, niet de naam van de aanmeldingsserver van het register.
az acr import \
--name myregistry \
--source aci-helloworld:latest \
--image aci-helloworld:latest \
--registry /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sourceResourceGroup/providers/Microsoft.ContainerRegistry/registries/mysourceregistry
In het volgende voorbeeld wordt een afbeelding geïmporteerd op basis van manifestsamenvating (SHA-256-hash, vertegenwoordigd als sha256:...
) in plaats van op tag:
az acr import \
--name myregistry \
--source mysourceregistry.azurecr.io/aci-helloworld@sha256:123456abcdefg
Importeren uit een register in een ander abonnement
Notitie
Als u een installatiekopieën van het ene register naar het andere wilt importeren, moeten de bron- en doelregisters ervoor zorgen dat beide regio's zijn geregistreerd voor Azure Container Registry (ACR) onder de resourceproviders van het abonnement.
In het volgende voorbeeld bevindt mysourceregistry zich in een ander abonnement dan myregistry in dezelfde Active Directory-tenant. Geef de resource-id van het bronregister op met de --registry
parameter. U ziet dat de --source
parameter alleen de bronopslagplaats en tag opgeeft, niet de naam van de aanmeldingsserver van het register.
az acr import \
--name myregistry \
--source aci-helloworld:latest \
--image aci-hello-world:latest \
--registry /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sourceResourceGroup/providers/Microsoft.ContainerRegistry/registries/mysourceregistry
Importeren uit een register met behulp van referenties voor de service-principal
Als u wilt importeren uit een register waartoe u geen toegang hebt met geïntegreerde Active Directory-machtigingen, kunt u referenties van de service-principal (indien beschikbaar) gebruiken voor het bronregister. Geef de appID en het wachtwoord op van een Active Directory-service-principal met ACRPull-toegang tot het bronregister. Het gebruik van een service-principal is handig voor het bouwen van systemen en andere systemen zonder toezicht die installatiekopieën moeten importeren in uw register.
az acr import \
--name myregistry \
--source sourceregistry.azurecr.io/sourcerrepo:tag \
--image targetimage:tag \
--username <SP_App_ID> \
--password <SP_Passwd>
Importeren uit een Azure-containerregister in een andere AD-tenant
Als u wilt importeren uit een Azure-containerregister in een andere Microsoft Entra-tenant, geeft u het bronregister op met de naam van de aanmeldingsserver en geeft u referenties op waarmee pull-toegang tot het register mogelijk is.
- Importeren tussen tenants via het uitgeschakelde register voor openbare toegang wordt niet ondersteund.
Importeren tussen tenants met gebruikersnaam en wachtwoord
Gebruik bijvoorbeeld een token en wachtwoord binnen het bereik van de opslagplaats, of de appID en het wachtwoord van een Active Directory-service-principal met ACRPull-toegang tot het bronregister.
az acr import \
--name myregistry \
--source sourceregistry.azurecr.io/sourcerrepo:tag \
--image targetimage:tag \
--username <SP_App_ID> \
--password <SP_Passwd>
Importeren tussen tenants met toegangstoken
- Importeren tussen tenants via het uitgeschakelde register voor openbare toegang wordt niet ondersteund.
Als u toegang wilt krijgen tot het bronregister met behulp van een identiteit in de brontenant met registermachtigingen, kunt u een toegangstoken ophalen:
# Login to Azure CLI with the identity, for example a user-assigned managed identity
az login --identity --username <identity_ID>
# Get access token returned by `az account get-access-token`
az account get-access-token
Geef in de doeltenant het toegangstoken als een wachtwoord door aan de az acr import
opdracht. Het bronregister geeft de naam van de aanmeldingsserver op. U ziet dat er geen gebruikersnaam nodig is in deze opdracht:
az acr import \
--name myregistry \
--source sourceregistry.azurecr.io/sourcerrepo:tag \
--image targetimage:tag \
--password <access-token>
Importeren uit een niet-Azure-privécontainerregister
Importeer een installatiekopie uit een niet-Azure-privéregister door referenties op te geven die pull-toegang tot het register mogelijk maken. Haal bijvoorbeeld een installatiekopie op uit een persoonlijk Docker-register:
az acr import \
--name myregistry \
--source docker.io/sourcerepo/sourceimage:tag \
--image sourceimage:tag \
--username <username> \
--password <password>
Volgende stappen
In dit artikel hebt u geleerd hoe u containerinstallatiekopieën importeert in een Azure-containerregister vanuit een openbaar register of een ander privéregister.
- Zie de naslaginformatie over de opdracht az acr import voor aanvullende opties voor het importeren van afbeeldingen.
Met het importeren van installatiekopieën kunt u inhoud verplaatsen naar een containerregister in een andere Azure-regio, een ander abonnement of een Microsoft Entra-tenant. Zie Een containerregister handmatig verplaatsen naar een andere regio voor meer informatie.
Export van artefacten uitschakelen uit een containerregister met netwerkbeperking.