Sdílet prostřednictvím


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 k údržbě kopií veřejného obsahu, včetně imagí kontejnerů v Docker Hubu.

Rizika s veřejným obsahem

Vaše prostředí může záviset na veřejném obsahu, jako jsou image veřejných kontejnerů, charty 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 závislost na obsahu veřejného registru představovat rizika pro pracovní postupy vývoje a nasazení obrazů. 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 momentálně stahujete veřejné image z Docker Hubu jako součást pracovního postupu sestavování nebo nasazování, doporučujeme ověřit se pomocí účtu Docker Hubu namísto anonymního stažení.

Při provádění častých anonymních žádostí o přijetí změn se můžou zobrazit chyby Dockeru podobné ERROR: toomanyrequests: Too Many Requests. nebo You have reached your pull rate limit.. Autentizujte se do Docker Hub, abyste těmto chybám zabránili.

Poznámka:

Od 2. listopadu 2020 platí limity rychlosti stahování na anonymní a ověřené požadavky na Docker Hub z účtů plánu Docker Free. Tato omezení se vynucují PODLE IP adresy a ID Dockeru.

Pokud chcete odhadnout počet vašich "pull requestů", mějte na paměti, že při použití služeb poskytovatele cloudu nebo práci za podnikovým NATem se může stát, že pro Docker Hub se několik uživatelů jeví jako jedna podmnožina IP adres. Přidáním ověřování placeného účtu Dockeru do požadavků provedených do Docker Hubu se můžete vyhnout potenciálním přerušením služeb způsobeným omezováním 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 obrázku: Docker Hub
  • Přístup k úložišti: Privátní
  • Přihlášení: <Uživatelské jméno Docker Hubu>
  • Heslo: <token pro Docker Hub>

Podrobnosti najdete v tématu autentizovaná stahování z Docker Hub na službě App Service.

Azure Container Instances

  • Zdroj image: Docker Hub nebo jiný registr
  • Typ image: Soukromý
  • Přihlašovací server registru obrazů: docker.io
  • Uživatelské jméno registru imagí: <uživatelské jméno docker hubu>
  • Heslo registru image: <Token pro Docker Hub>
  • 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ů. Pomocí služby Artifact Cache můžete ukládat artefakty 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 také výrazně zvyšuje spolehlivost vyžádání v kombinaci s geograficky replikovanou službou ACR za účelem vyžádání artefaktů z oblasti, která je nejblíže vašemu prostředku Azure. Kromě toho můžete využít všechny funkce zabezpečení, které ACR nabízí, včetně soukromých sítí, konfigurace brány firewall, služebních identit a dalších. Úplné informace o používání veřejného obsahu se službou ACR Artifact Cache najdete v kurzu Ke službě Artifact Cache .

Import imagí do registru kontejnerů Azure

Pokud chcete spravovat kopie veřejných imagí, vytvořte registr kontejnerů Azure, pokud ho ještě nemáte. K vytvoření registru použijte Azure CLI, Azure Portal, Azure PowerShell nebo jiné nástroje.

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 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, obrázky s multiarchitekturou nebo artefakty OCI, jako jsou Helm charty.

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 obrazů aplikací by měli zajistit, aby jejich kód odkazoval 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 jiný registr než DNL nebo FROM myregistry-abc123.azurecr.io/mybaseimage:v1 pro registr s podporou DNL. Další podrobnosti o možnostech DNL během vytváření registru a důsledky názvu DNS najdete v tématu Rychlý start – Vytvoření registru na portálu.
  • 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ů.

Automatizace aktualizací imagí aplikací

Pokud chcete automatizovat sestavení imagí aplikací při aktualizaci základních imagí, nastavte úlohu služby Azure Container Registry. Tento přístup se rozšiřuje o import obrázků. Ú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