Správa veřejného obsahu pomocí služby Azure Container Registry
Tento článek obsahuje přehled postupů a pracovních postupů pro použití místního registru, jako je registr kontejneru Azure, ke správě kopií veřejného obsahu, jako jsou image kontejnerů v Docker Hubu.
Rizika s veřejným obsahem
Vaše prostředí může mít závislosti na veřejném obsahu, jako jsou image veřejných kontejnerů, grafy Helm, zásady OPA (Open Policy Agent ) nebo jiné artefakty. Můžete například spustit nginx pro směrování služeb nebo docker build FROM alpine
vyžádáním imagí přímo z Docker Hubu nebo jiného veřejného registru.
Bez správných kontrol může mít závislosti na obsahu veřejného registru rizika pro pracovní postupy vývoje a nasazení imagí. Pokud chcete rizika zmírnit, uchovávejte místní kopie veřejného obsahu, pokud je to možné. Podrobnosti najdete na blogu Open Container Initiative.
Ověřování pomocí Docker Hubu
Pokud jako první krok v rámci pracovního postupu sestavení nebo nasazení aktuálně načítáte veřejné image z Docker Hubu, doporučujeme místo vytvoření anonymní žádosti o přijetí změn ověřit pomocí účtu Docker Hubu.
Při provádění častých anonymních žádostíoch ERROR: toomanyrequests: Too Many Requests.
You have reached your pull rate limit.
Poznámka:
Od 2. listopadu 2020 platí limity přenosové rychlosti stahování na anonymní a ověřené požadavky na Docker Hub z účtů plánu Docker Free a vynucují se IP adresou a ID Dockeru.
Při odhadu počtu žádostí o přijetí změn vezměte v úvahu, že při používání služeb poskytovatele cloudu nebo práci za podnikovým překladem adres (NAT) se do Docker Hubu v agregaci zobrazí více uživatelů jako podmnožina IP adres. Přidání ověřování placených účtů Dockeru do požadavků provedených v Docker Hubu zabrání potenciálním přerušením služeb kvůli omezování rychlosti.
Podrobnosti najdete v tématu Ceny a předplatná Dockeru a podmínky služby Dockeru.
Přístupový token Docker Hubu
Docker Hub podporuje osobní přístupové tokeny jako alternativy k heslu Dockeru při ověřování ve službě Docker Hub. Tokeny se doporučují pro automatizované služby, které načítají image z Docker Hubu. Můžete vygenerovat více tokenů pro různé uživatele nebo služby a odvolat tokeny, pokud už je nepotřebujete.
Pokud se chcete ověřit pomocí docker login
tokenu, vypněte heslo na příkazovém řádku. Po zobrazení výzvy k zadání hesla zadejte token. Pokud jste pro svůj účet Docker Hubu povolili dvojúrovňové ověřování, musíte při přihlašování z rozhraní příkazového řádku Dockeru použít osobní přístupový token.
Ověřování ze služeb Azure
Několik služeb Azure, včetně služby App Service a Azure Container Instances, podporuje načítání imagí z veřejných registrů, jako je Docker Hub pro nasazení kontejnerů. Pokud potřebujete nasadit image z Docker Hubu, doporučujeme nakonfigurovat nastavení pro ověření pomocí účtu Docker Hubu. Příklady:
App Service
- Zdroj image: Docker Hub
- Přístup k úložišti: Privátní
- Přihlášení: <Uživatelské jméno Docker Hubu>
- Heslo: <Token Docker Hubu>
Podrobnosti najdete v tématu O přijetí změn ověřených službou App Service ve službě Docker Hub.
Azure Container Instances
- Zdroj image: Docker Hub nebo jiný registr
- Typ image: Soukromý
- Přihlašovací server registru imagí: docker.io
- Uživatelské jméno registru imagí: <uživatelské jméno docker hubu>
- Heslo registru image: <Token Docker Hubu>
- Obrázek: docker.io/< repo name>:<tag>
Konfigurace mezipaměti artefaktů pro využívání veřejného obsahu
Osvědčeným postupem pro využívání veřejného obsahu je kombinovat ověřování registru a funkci Mezipaměti artefaktů. Artifact Cache můžete použít k ukládání artefaktů kontejneru do mezipaměti do služby Azure Container Registry i v privátních sítích. Použití služby Artifact Cache vás nejen chrání před limity četnosti registru, ale výrazně zvyšuje spolehlivost přijetí změn v kombinaci s geograficky replikovanou službou ACR za účelem vyžádání artefaktů z jakékoli oblasti, která je nejblíže vašemu prostředku Azure. Kromě toho můžete použít také všechny funkce zabezpečení, které služba ACR nabízí, včetně privátních sítí, konfigurace brány firewall, instančních objektů a dalších. Úplné informace o používání veřejného obsahu se službou ACR Artifact Cache najdete v kurzu o službě Artifact Cache .
Import imagí do registru kontejnerů Azure
Pokud chcete začít spravovat kopie veřejných imagí, můžete vytvořit registr kontejneru Azure, pokud ho ještě nemáte. Vytvořte registr pomocí Azure CLI, webu Azure Portal, Azure PowerShellu nebo jiných nástrojů.
Jako doporučený jednorázový krok naimportujte základní image a další veřejný obsah do registru kontejneru Azure. Příkaz az acr import v Azure CLI podporuje import imagí z veřejných registrů, jako je Docker Hub a Microsoft Container Registry a z jiných privátních registrů kontejnerů.
az acr import
nevyžaduje místní instalaci Dockeru. Můžete ho spustit pomocí místní instalace Azure CLI nebo přímo v Azure Cloud Shellu. Podporuje obrázky libovolného typu operačního systému, imagí s více architekturami nebo artefaktů OCI, jako jsou grafy Helm.
V závislosti na potřebách vaší organizace můžete importovat do vyhrazeného registru nebo úložiště ve sdíleném registru.
az acr import \
--name myregistry \
--source docker.io/library/hello-world:latest \
--image hello-world:latest \
--username <Docker Hub username> \
--password <Docker Hub token>
Aktualizace odkazů na image
Vývojáři imagí aplikací by měli zajistit, aby jejich kód odkazovaly na místní obsah pod jejich kontrolou.
- Aktualizujte odkazy na image tak, aby používaly privátní registr. Například aktualizujte
FROM baseimage:v1
příkaz v souboru Dockerfile na .FROM myregistry.azurecr.io/mybaseimage:v1
- Nakonfigurujte přihlašovací údaje nebo ověřovací mechanismus pro použití privátního registru. Přesný mechanismus závisí na nástrojích, které používáte pro přístup k registru a způsobu správy přístupu uživatelů.
- Pokud pro přístup k registru používáte cluster Kubernetes nebo Azure Kubernetes Service, prohlédnou si scénáře ověřování.
- Přečtěte si další informace o možnostech ověřování pomocí registru kontejneru Azure.
Automatizace aktualizací imagí aplikací
Rozšířením importu image nastavte úlohu služby Azure Container Registry pro automatizaci sestavení imagí aplikace při aktualizaci základních imagí. Úloha automatizovaného sestavení může sledovat aktualizace základní image i aktualizace zdrojového kódu.
Podrobný příklad najdete v tématu Jak využívat a udržovat veřejný obsah pomocí úloh služby Azure Container Registry.
Poznámka:
Jedna předkonfigurovaná úloha může automaticky znovu sestavit každou image aplikace, která odkazuje na závislá základní image.
Další kroky
- Přečtěte si další informace o úlohách ACR pro sestavování, spouštění, nabízení a opravy imagí kontejnerů v Azure.
- Informace o tom, jak využívat a udržovat veřejný obsah pomocí úloh služby Azure Container Registry pro automatizovaný pracovní postup pro aktualizaci základních imagí do vašeho prostředí.
- Další příklady automatizace sestavení a aktualizací imagí najdete v kurzech ACR Tasks.