Ověřování pomocí privátního registru kontejnerů DockeruAuthenticate with a private Docker container registry

Existuje několik způsobů, jak ověřování pomocí služby Azure container registry, z nichž každý se vztahuje na jeden nebo více scénářů využití registru.There are several ways to authenticate with an Azure container registry, each of which is applicable to one or more registry usage scenarios.

Můžete se přihlásit k registru přímo prostřednictvím jednotlivých přihlášení, nebo vaše aplikace a orchestrátorů kontejnerů můžete provádět bezobslužné nebo "bezobslužný", ověřování pomocí služby Azure Active Directory (Azure AD) instanční objekt služby.You can log in to a registry directly via individual login, or your applications and container orchestrators can perform unattended, or "headless," authentication by using an Azure Active Directory (Azure AD) service principal.

Jednotlivé přihlášení pomocí Azure ADIndividual login with Azure AD

Při práci s registrem přímo, jako je například přetahující Image do a nahráním Image z pracovní stanice vývoj ověřovat pomocí az acr login v příkaz rozhraní příkazového řádku Azure:When working with your registry directly, such as pulling images to and pushing images from a development workstation, authenticate by using the az acr login command in the Azure CLI:

az acr login --name <acrName>

Po přihlášení pomocí az acr login, rozhraní příkazového řádku používá token, který vytvoří, když jste spustili az login bez problémů ověřování relace k vašemu registru.When you log in with az acr login, the CLI uses the token created when you executed az login to seamlessly authenticate your session with your registry. Po přihlášení tímto způsobem své přihlašovací údaje jsou uložené v mezipaměti a následné docker příkazy v relaci nevyžadují, aby uživatelské jméno nebo heslo.Once you've logged in this way, your credentials are cached, and subsequent docker commands in your session do not require a username or password.

Pro přístup k registru token, který používá az acr login platí za 1 hodinu, proto doporučujeme, aby vždy přihlášení k registru dřív, než spustíte docker příkazu.For registry access, the token used by az acr login is valid for 1 hour, so we recommend that you always log in to the registry before running a docker command. Pokud vyprší platnost vašeho tokenu, můžete ho aktualizovat pomocí az acr login příkazu donutit.If your token expires, you can refresh it by using the az acr login command again to reauthenticate.

Pomocí az acr login s identitami, Azure poskytuje přístupu podle rolí.Using az acr login with Azure identities provides role-based access. Pro některé scénáře můžete chtít přihlásit k registru s vlastním jednotlivé identity ve službě Azure AD.For some scenarios you may want to log in to a registry with your own individual identity in Azure AD. Pro scénáře mezi službami nebo pro zvládání potřeb pracovní skupiny, pokud nechcete spravovat jednotlivé přístup, můžete se také přihlásit spravované identity pro prostředky Azure.For cross-service scenarios or to handle the needs of a workgroup where you don't want to manage individual access, you can also log in with a managed identity for Azure resources.

Instanční objekt službyService principal

Pokud přiřadíte instanční objekt služby do vašeho registru, aplikace nebo služby lze použít pro bezobslužné ověření.If you assign a service principal to your registry, your application or service can use it for headless authentication. Instanční objekty umožňují přístupu podle rolí do registru, a můžete přiřadit více objektů služby do registru.Service principals allow role-based access to a registry, and you can assign multiple service principals to a registry. Více instanční objekty umožňují definovat různá přístupová pro různé aplikace.Multiple service principals allow you to define different access for different applications.

Dostupné role pro registr kontejneru patří:The available roles for a container registry include:

  • AcrPull: o přijetí změnAcrPull: pull

  • AcrPush: nahrání a staženíAcrPush: pull and push

  • Vlastník: o přijetí změn, push a přiřadit role jiným uživatelůmOwner: pull, push, and assign roles to other users

Úplný seznam rolí, najdete v části Azure Container Registry role a oprávnění.For a complete list of roles, see Azure Container Registry roles and permissions.

Skripty rozhraní příkazového řádku k vytvoření ID aplikace instančního objektu služby a heslo pro ověřování pomocí služby Azure container registry, nebo použít existující instanční objekt služby, najdete v části ověřování Azure Container Registry pomocí instančních objektů.For CLI scripts to create a service principal app ID and password for authenticating with an Azure container registry, or to use an existing service principal, see Azure Container Registry authentication with service principals.

Instanční objekty umožňují bezobslužného připojení k registru v pull a push scénáře, jako jsou následující:Service principals enable headless connectivity to a registry in both pull and push scenarios like the following:

  • O přijetí změn: Nasazování kontejnerů z registru pro systémy Orchestrace včetně Kubernetes, DC/OS a Docker Swarm.Pull: Deploy containers from a registry to orchestration systems including Kubernetes, DC/OS, and Docker Swarm. Můžete také využít z registry kontejnerů pro související služby Azure, jako Azure Kubernetes Service, Azure Container Instances, služby App Service, Batch, Service Fabrica další.You can also pull from container registries to related Azure services such as Azure Kubernetes Service, Azure Container Instances, App Service, Batch, Service Fabric, and others.

  • Push: Sestavování imagí kontejneru a nahrajete je do registru pomocí průběžné integrace a nasazování řešení, jako je Azure kanály nebo Jenkinse.Push: Build container images and push them to a registry using continuous integration and deployment solutions like Azure Pipelines or Jenkins.

Můžete taky přihlásit přímo pomocí instančního objektu.You can also log in directly with a service principal. Když spustíte následující příkaz, interaktivně zadejte ID aplikace instančního objektu služby (uživatelské jméno) a heslo po zobrazení výzvy.When you run the following command, interactively provide the service principal appID (username) and password when prompted. Osvědčené postupy pro správu přihlašovací údaje, najdete v článku docker login referenčních příkazu:For best practices to manage login credentials, see the docker login command reference:

docker login myregistry.azurecr.io

Po přihlášení Docker ukládá do mezipaměti přihlašovací údaje, takže není potřeba pamatovat si ID aplikace.Once logged in, Docker caches the credentials, so you don't need to remember the app ID.

Tip

Spuštěním můžete obnovit heslo instančního objektu az ad sp reset-credentials příkazu.You can regenerate the password of a service principal by running the az ad sp reset-credentials command.

Účet správceAdmin account

Každý registr kontejnerů zahrnuje uživatelský účet správce, který je ve výchozím nastavení zakázané.Each container registry includes an admin user account, which is disabled by default. Můžete povolit uživatele s rolí správce a spravovat svoje přihlašovací údaje na webu Azure Portal nebo pomocí rozhraní příkazového řádku Azure nebo dalších nástrojích Azure.You can enable the admin user and manage its credentials in the Azure portal, or by using the Azure CLI or other Azure tools.

Důležité

Účet správce je určená pro jednoho uživatele pro přístup k registru, především pro účely testování.The admin account is designed for a single user to access the registry, mainly for testing purposes. Nedoporučujeme přihlašovací údaje účtu správce pro sdílení obsahu s více uživateli.We do not recommend sharing the admin account credentials with multiple users. Všichni uživatelé ověřování pomocí účtu správce se zobrazí jako jeden uživatel s oprávněním k nabízení a vyžadování do registru.All users authenticating with the admin account appear as a single user with push and pull access to the registry. Změna nebo zakázání účtu zakáže přístup k registru pro všechny uživatele, kteří používají pověření uživatele.Changing or disabling this account disables registry access for all users who use its credentials. Jednotlivé identity se doporučuje pro uživatele a instančních objektů pro bezobslužné scénáře.Individual identity is recommended for users and service principals for headless scenarios.

Účet správce je k dispozici se dvě hesla, které může být znovu vygenerován.The admin account is provided with two passwords, both of which can be regenerated. Dvě hesla bylo možné zachovat připojení k registru pomocí jednoho hesla, zatímco si znovu vygenerujete druhé.Two passwords allow you to maintain connection to the registry by using one password while you regenerate the other. Pokud je povolený účet správce, můžete předat uživatelské jméno a heslo buď docker login příkaz po zobrazení výzvy pro základní ověřování do registru.If the admin account is enabled, you can pass the username and either password to the docker login command when prompted for basic authentication to the registry. Příklad:For example:

docker login myregistry.azurecr.io 

Pokud chcete povolit uživatele s rolí správce pro existující registr, můžete použít --admin-enabled parametr az acr update příkaz v rozhraní příkazového řádku Azure:To enable the admin user for an existing registry, you can use the --admin-enabled parameter of the az acr update command in the Azure CLI:

az acr update -n <acrName> --admin-enabled true

Můžete povolit uživatele s rolí správce na webu Azure Portal přejděte v registru, vyberete přístupové klíče pod nastavení, pak povolit pod správce Uživatel.You can enable the admin user in the Azure portal by navigating your registry, selecting Access keys under SETTINGS, then Enable under Admin user.

Povolit uživatele s rolí správce uživatelského rozhraní na webu Azure Portal

Další postupNext steps