Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Image kontejneru můžete snadno importovat (kopírovat) do registru kontejneru Azure bez použití příkazů Dockeru. Můžete například importovat image z vývojového registru do produkčního registru nebo kopírovat základní image z veřejného registru.
Azure Container Registry zpracovává řadu běžných scénářů kopírování imagí a dalších artefaktů z existujícího registru:
Importuje image z veřejného registru.
Importujte image nebo artefakty OCI, včetně grafů Helm 3, z jiného registru kontejnerů Azure v rámci stejného předplatného Azure či tenantu Azure nebo napříč předplatnými a tenanty.
Importuje image z jiného než Azure privátního registru kontejneru.
Import imagí do registru kontejneru Azure má v porovnání s použitím příkazů Rozhraní příkazového řádku Dockeru následující výhody:
Pokud vaše klientské prostředí nepotřebuje místní instalaci Dockeru, můžete importovat jakoukoli image kontejneru bez ohledu na podporovaný typ operačního systému.
Pokud importujete image s více architekturami (například oficiální image Dockeru), image pro všechny architektury a platformy zadané v seznamu manifestu se zkopírují.
Pokud máte přístup k cílovému registru, nevyžadujete veřejný koncový bod registru.
Důležité
Import imagí vyžaduje podporu externího registru RFC 7233. Abyste se vyhnuli chybám, použijte registr, který podporuje rozsahy RFC 7233 při použití az acr import příkazu s identifikátorem URI registru.
Omezení
Maximální počet manifestů importovaného obrázku je 50.
Azure Container Registry podporuje import imagí z různých zdrojových registrů napříč poskytovateli cloudu. Pokud je zdrojem importu služba ACR, můžete importovat pouze z domovské oblasti zdrojové služby ACR. Regionální koncové body zdrojového registru ACR nejsou podporovány jako zdroje importu. Při importu ze zdrojové služby ACR zadejte globální koncový bod služby ACR zdroje. Import navíc vždy zapisuje obsah do domovské oblasti podřízené služby ACR. Viz referenční informace ke koncovému bodu Azure Container Registry.
Pokud chcete importovat image kontejneru, spusťte Azure CLI v Azure Cloud Shell nebo místně.
Poznámka:
Pokud potřebujete distribuovat stejné image kontejnerů napříč několika oblastmi Azure, Azure Container Registry podporuje také geografickou replikaci. Geografickou replikací registru (vyžaduje se úroveň služby Premium), můžete obsluhovat více oblastí s identickými názvy imagí a značek z jednoho registru.
Důležité
Chcete-li importovat do registru kontejnerů Azure s omezením přístupu k síti nebo z něj, musí tento omezený registr povolit přístup důvěryhodným službám, aby bylo možné obejít omezení sítě. Ve výchozím nastavení je nastavení povolené, takže import funguje. Pokud vytvoříte registr s privátním koncovým bodem nebo s pravidly brány firewall registru a toto nastavení nepovolíte, import selže.
Požadavky
Pokud ještě nemáte registr kontejneru Azure, vytvořte registr. Postup najdete v tématu Rychlý start: Vytvoření privátního registru kontejneru pomocí Azure CLI.
Pokud chcete importovat image do služby Azure Container Registry, musí mít vaše identita oprávnění k aktivaci importů v cílovém registru (Container Registry Data Importer and Data Reader roli). Přehled oprávnění a rolí služby Azure Container Registry
Import imagí kontejneru z veřejného registru
Důležité
Pokud chcete importovat z veřejného registru do registru kontejneru s omezeným přístupem na síť Azure, musí omezený registr povolit přístup důvěryhodnými službami k obejití sítě. Ve výchozím nastavení je toto nastavení povolené, takže import funguje. Pokud toto nastavení zakážete u nově vytvořeného registru s privátním koncovým bodem nebo s pravidly brány firewall pro registr, import selže.
Import imagí kontejneru z Docker Hub
Pomocí příkazu az acr import můžete například importovat image s více architekturami hello-world:latest z Docker Hubu do registru s názvem myregistry. Protože hello-world je oficiální image z Docker Hubu, je tato image ve výchozím library úložišti. Zahrňte název úložiště a volitelně značku do hodnoty parametru --source image. (Volitelně můžete obrázek identifikovat hodnotou hash manifestu místo značkou, což zaručuje konkrétní verzi image.)
az acr import \
--name myregistry \
--source docker.io/library/hello-world:latest \
--image hello-world:latest
Spuštěním příkazu az acr manifest list-metadata můžete ověřit, že je k tomuto obrázku přidruženo více manifestů:
az acr manifest list-metadata \
--name hello-world \
--registry myregistry
Přes import artefaktu pomocí digestu bez přidání značky.
az acr import \
--name myregistry \
--source docker.io/library/hello-world@sha256:abc123 \
--repository hello-world
Pokud máte účet Docker Hub, použijte přihlašovací údaje při importu obrázku z Docker Hub. Jako parametry předejte uživatelské jméno a heslo Docker Hubu nebo az acr import. Následující příklad naimportuje veřejnou image z tensorflow úložiště v Docker Hubu pomocí přihlašovacích údajů Docker Hubu:
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>
Import imagí kontejneru ze služby Microsoft Container Registry
Například naimportujte ltsc2022 image Windows Server Core z úložiště Microsoft Container Registry windows.
az acr import \
--name myregistry \
--source mcr.microsoft.com/windows/servercore:ltsc2022\
--image servercore:ltsc2022
Import bitových kopií kontejnerů z registru kontejnerů Azure ve stejném tenantovi služby Microsoft Entra
Image můžete importovat z registru kontejneru Azure ve stejném Microsoft Entra tenantovi pomocí integrovaných oprávnění Microsoft Entra.
Vaše identita musí mít oprávnění k zobrazení a vyžádání obrázků, tagů a odkazů OCI ze zdrojového registru (
Container Registry Data Importer and Data Readerrole přidělená na zdrojový registr).Vaše identita musí mít také oprávnění ke čtení imagí a aktivaci importů v cílovém registru (
Container Registry Data Importer and Data Readerrole přiřazená cílovému registru).Registr může být ve stejném nebo v jiném předplatném Azure v rámci stejného klienta Microsoft Entra.
Veřejný přístup ke zdrojovému registru je zakázaný. Pokud je veřejný přístup zakázaný, zadejte zdrojový registr podle ID prostředku namísto názvu přihlašovacího serveru registru.
Zdrojový registr nebo cílový registr s privátním koncovým bodem nebo pravidly brány firewall registru musí zajistit, aby omezený registr umožňoval důvěryhodným službám přístup k síti.
Import imagí kontejneru z registru ve stejném předplatném
Například naimportujte aci-helloworld:latest image ze zdrojového registru mysourceregistry do myregistry ve stejném předplatném Azure.
Následující příklad naimportuje aci-helloworld:latest image do myregistry ze zdrojového registru mysourceregistry , ve kterém je zakázaný přístup k veřejnému koncovému bodu registru. Zadejte ID prostředku zdrojového registru pomocí parametru --registry . Všimněte si, že --source parametr určuje pouze zdrojové úložiště a značku, nikoli název přihlašovacího serveru registru.
Pokud chcete pro zdrojový registr použít ověřování identity Microsoft Entra, zadejte příznak --registry <source-registry-resource-id>.
az acr import \
--name myregistry \
--source aci-helloworld:latest \
--image aci-helloworld:latest \
--registry /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/sourceResourceGroup/providers/Microsoft.ContainerRegistry/registries/mysourceregistry
Import imagí kontejnerů z registru v jiném předplatném
Poznámka:
Pokud chcete importovat image z jednoho registru do jiného, musí zdrojové a cílové registry zajistit, aby obě oblasti byly zaregistrované pro Azure Container Registry (ACR) v rámci poskytovatelů prostředků předplatného.
V následujícím příkladu je mysourceregistry v jiném předplatném než myregistry ve stejném tenantovi. Pomocí parametru --registry zadejte ID prostředku zdrojového registru. Parametr --source určuje pouze zdrojové úložiště a značku, nikoli název přihlašovacího serveru registru.
az acr import \
--name myregistry \
--source aci-helloworld:latest \
--image aci-hello-world:latest \
--registry /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/sourceResourceGroup/providers/Microsoft.ContainerRegistry/registries/mysourceregistry
Importujte image kontejnerů z registru pomocí přihlašovacích údajů instančního objektu služby
Pokud chcete importovat z registru, ke kterému nemůžete získat přístup pomocí integrovaných oprávnění služba Active Directory, použijte přihlašovací údaje instančního objektu (pokud jsou k dispozici) pro zdrojový registr. Zadejte ID aplikace a heslo Microsoft Entra instančního objektu, který má správný přístup k přiřazení role ke zdrojovému registru.
- U instančních objektů Microsoft Entra se ujistěte, že je přiřazena buď
Container Registry Repository Reader(pro registry s podporou ABAC), neboAcrPull(pro registry bez ABAC).
Použití principálu služby je užitečné pro systémy sestavení a další bezobslužné systémy, které potřebují importovat obrazy do registru.
az acr import \
--name myregistry \
--source sourceregistry.azurecr.io/sourcerepo:tag \
--image targetimage:tag \
--username <SP_App_ID> \
--password <SP_Passwd>
Import imagí kontejneru z registru kontejneru Azure v jiném tenantovi
Pokud chcete importovat image z registru kontejnerů Azure v jiném tenantovi Microsoft Entra, zadejte zdrojový registr pomocí názvu přihlašovacího serveru a zadejte přihlašovací údaje, které umožňují přístup typu pull k registru.
Import mezi tenanty se nepodporuje u veřejného registru zakázaného přístupu.
Import mezi tenanty s uživatelským jménem a heslem
Použijte například token pro úložiště Entra jiného než Microsoftu a heslo, nebo ID aplikace a heslo hlavní služby Microsoft Entra, která má správná přiřazení rolí pro zdrojový registr.
- Pro objekty služby Microsoft Entra se ujistěte, že je ke zdrojovému registru přiřazené buď
Container Registry Repository Reader(pro registry s podporou ABAC), neboAcrPull(pro registry bez ABAC).
az acr import \
--name myregistry \
--source sourceregistry.azurecr.io/sourcerepo:tag \
--image targetimage:tag \
--username <SP_App_ID> \
--password <SP_Passwd>
Import mezi tenanty s přístupovým tokenem
Pokud chcete získat přístup ke zdrojovému registru pomocí identity ve zdrojovém tenantovi s oprávněními registru, získejte přístupový token:
# 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
V cílovém tenantovi použijte přístupový token jako heslo pro az acr import příkaz. Zdrojový registr určuje název přihlašovacího serveru. V tomto příkazu není potřeba žádné uživatelské jméno:
az acr import \
--name myregistry \
--source sourceregistry.azurecr.io/sourcerepo:tag \
--image targetimage:tag \
--password ($token|ConvertFrom-Json).accessToken
Import imagí kontejneru z jiného než Azure privátního registru kontejneru
Importujte obrázek z privátního registru mimo Azure zadáním přihlašovacích údajů, které umožňují přístup k načítání z registru. Například vyžádat image z privátního registru Dockeru:
az acr import \
--name myregistry \
--source docker.io/sourcerepo/sourceimage:tag \
--image sourceimage:tag \
--username <username> \
--password <password>
Řešení potíží s importy imagí kontejneru
Pokud se při importu obrázku zobrazí chyba, další informace najdete v následující tabulce.
Další kroky
V tomto článku jste se dozvěděli o importu imagí kontejnerů do registru kontejnerů Azure z veřejného registru nebo jiného privátního registru.
Další možnosti importu imagí najdete v referenčních informacích az acr import nebo Import-AzContainerRegistryImage .
Import obrazů vám může pomoci přesunout obsah do registru kontejneru v jiné oblasti Azure, předplatném nebo tenantovi Microsoft Entra. Další informace najdete v tématu Ruční přesun registru kontejneru do jiné oblasti.
Zakažte export artefaktů z registru kontejneru s omezeným přístupem k síti.