Delen via


Openbare inhoud beheren met Azure Container Registry

Dit artikel is een overzicht van procedures en werkstromen voor het gebruik van een lokaal register, zoals een Azure-containerregister , voor het onderhouden van kopieën van openbare inhoud, zoals containerinstallatiekopieën in Docker Hub.

Risico's met openbare inhoud

Uw omgeving kan afhankelijk zijn van openbare inhoud, zoals openbare containerinstallatiekopieën, Helm-grafieken, OPA-beleid (Open Policy Agent ) of andere artefacten. U kunt bijvoorbeeld nginx uitvoeren voor serviceroutering of docker build FROM alpine door installatiekopieën rechtstreeks vanuit Docker Hub of een ander openbaar register op te halen.

Zonder de juiste besturingselementen kan het hebben van afhankelijkheden op openbare registerinhoud risico's opleveren voor uw werkstromen voor het ontwikkelen en implementeren van installatiekopieën. U kunt de risico's beperken door lokale kopieën van openbare inhoud waar mogelijk te bewaren. Zie de blog Open Container Initiative voor meer informatie.

Verifiëren met Docker Hub

Als u momenteel openbare installatiekopieën uit Docker Hub ophaalt als onderdeel van een build- of implementatiewerkstroom, raden we u aan om u te verifiëren met behulp van een Docker Hub-account in plaats van een anonieme pull-aanvraag te doen.

Wanneer u frequente anonieme pull-aanvragen maakt, ziet u mogelijk Docker-fouten die vergelijkbaar zijn met ERROR: toomanyrequests: Too Many Requests. of You have reached your pull rate limit. verifiëren bij Docker Hub om deze fouten te voorkomen.

Notitie

Vanaf 2 november 2020 zijn downloadsnelheidslimieten van toepassing op anonieme en geverifieerde aanvragen voor Docker Hub vanuit docker Free Plan-accounts en worden ze afgedwongen door respectievelijk IP-adres en Docker-id.

Houd er bij het schatten van uw aantal pull-aanvragen rekening mee dat bij het gebruik van cloudproviderservices of het werken achter een bedrijfs-NAT meerdere gebruikers worden gepresenteerd aan Docker Hub als een subset van IP-adressen. Door docker betaalde accountverificatie toe te voegen aan aanvragen die zijn gedaan bij Docker Hub, voorkomt u mogelijke serviceonderbrekingen vanwege snelheidsbeperking.

Zie Docker-prijzen en -abonnementen en de Docker-servicevoorwaarden voor meer informatie.

Docker Hub-toegangstoken

Docker Hub ondersteunt persoonlijke toegangstokens als alternatief voor een Docker-wachtwoord bij het verifiëren bij Docker Hub. Tokens worden aanbevolen voor geautomatiseerde services die installatiekopieën ophalen uit Docker Hub. U kunt meerdere tokens genereren voor verschillende gebruikers of services en tokens intrekken wanneer u deze niet meer nodig hebt.

Als u wilt verifiëren met docker login behulp van een token, laat u het wachtwoord weg op de opdrachtregel. Wanneer u om een wachtwoord wordt gevraagd, voert u in plaats daarvan het token in. Als u tweeledige verificatie hebt ingeschakeld voor uw Docker Hub-account, moet u een persoonlijk toegangstoken gebruiken wanneer u zich aanmeldt vanuit de Docker CLI.

Verifiëren vanuit Azure-services

Verschillende Azure-services, waaronder App Service en Azure Container Instances, bieden ondersteuning voor het ophalen van installatiekopieën uit openbare registers, zoals Docker Hub voor containerimplementaties. Als u een installatiekopieën wilt implementeren vanuit Docker Hub, raden we u aan om instellingen te configureren voor verificatie met behulp van een Docker Hub-account. Voorbeelden:

App Service

  • Bron van installatiekopieën: Docker Hub
  • Toegang tot opslagplaats: privé
  • Aanmelding: <Docker Hub-gebruikersnaam>
  • Wachtwoord: <Docker Hub-token>

Zie Geverifieerde pull-aanvragen van Docker Hub in App Service voor meer informatie.

Azure Container Instances

  • Bron van installatiekopieën: Docker Hub of ander register
  • Afbeeldingstype: Privé
  • Aanmeldingsserver voor installatiekopieënregister: docker.io
  • Gebruikersnaam van installatiekopieënregister: <Gebruikersnaam van Docker Hub>
  • Wachtwoord voor installatiekopieënregister: <Docker Hub-token>
  • Afbeelding: docker.io/< naam>:<tag>

Artefactcache configureren om openbare inhoud te gebruiken

De aanbevolen procedure voor het gebruik van openbare inhoud is het combineren van registerverificatie en de functie Artefactcache. U kunt Artifact Cache gebruiken om uw containerartefacten in uw Azure Container Registry op te slaan, zelfs in privénetwerken. Het gebruik van Artifact Cache beschermt u niet alleen tegen registerfrequentielimieten, maar verhoogt de betrouwbaarheid van pull-aanvragen aanzienlijk in combinatie met geo-gerepliceerde ACR om artefacten op te halen uit de regio die zich het dichtst bij uw Azure-resource bevindt. Daarnaast kunt u ook alle beveiligingsfuncties gebruiken die ACR te bieden heeft, waaronder privénetwerken, firewallconfiguratie, service-principals en meer. Raadpleeg de zelfstudie Artefactcache voor volledige informatie over het gebruik van openbare inhoud met ACR Artifact Cache.

Installatiekopieën importeren in een Azure-containerregister

Als u kopieën van openbare installatiekopieën wilt beheren, kunt u een Azure-containerregister maken als u er nog geen hebt. Maak een register met behulp van de Azure CLI, Azure Portal, Azure PowerShell of andere hulpprogramma's.

Als aanbevolen eenmalige stap importeert u basisinstallatiekopieën en andere openbare inhoud in uw Azure-containerregister. De opdracht az acr import in azure CLI ondersteunt het importeren van installatiekopieën uit openbare registers, zoals Docker Hub en Microsoft Container Registry, en van andere privécontainerregisters.

az acr import vereist geen lokale Docker-installatie. U kunt deze uitvoeren met een lokale installatie van de Azure CLI of rechtstreeks in Azure Cloud Shell. Het ondersteunt installatiekopieën van elk type besturingssysteem, installatiekopieën met meerdere architectuur of OCI-artefacten zoals Helm-grafieken.

Afhankelijk van de behoeften van uw organisatie kunt u importeren in een toegewezen register of een opslagplaats in een gedeeld register.

az acr import \
  --name myregistry \
  --source docker.io/library/hello-world:latest \
  --image hello-world:latest \
  --username <Docker Hub username> \
  --password <Docker Hub token>

Afbeeldingsverwijzingen bijwerken

Ontwikkelaars van toepassingsinstallatiekopieën moeten ervoor zorgen dat hun code verwijst naar lokale inhoud onder hun beheer.

  • Werk verwijzingen naar installatiekopieën bij om het privéregister te gebruiken. Werk bijvoorbeeld een FROM baseimage:v1 instructie in een Dockerfile bij naar FROM myregistry.azurecr.io/mybaseimage:v1
  • Configureer referenties of een verificatiemechanisme voor het gebruik van het privéregister. Het exacte mechanisme is afhankelijk van de hulpprogramma's die u gebruikt voor toegang tot het register en hoe u gebruikerstoegang beheert.
    • Als u een Kubernetes-cluster of Azure Kubernetes Service gebruikt om toegang te krijgen tot het register, raadpleegt u de verificatiescenario's.
    • Meer informatie over opties voor verificatie met een Azure-containerregister.

Updates van toepassingsinstallatiekopieën automatiseren

Als u het importeren van installatiekopieën uitbreidt, stelt u een Azure Container Registry-taak in om builds van toepassingsinstallatiekopieën te automatiseren wanneer basisinstallatiekopieën worden bijgewerkt. Een geautomatiseerde build-taak kan zowel updates van basisinstallatiekopieën als broncode-updates bijhouden.

Zie Openbare inhoud gebruiken en onderhouden met Azure Container Registry-taken voor een gedetailleerd voorbeeld.

Notitie

Eén vooraf geconfigureerde taak kan elke toepassingsinstallatiekopieën die verwijst naar een afhankelijke basisinstallatiekopieën automatisch herbouwen.

Volgende stappen