Gestire il contenuto pubblico con Registro Azure Container

Questo articolo offre una panoramica delle procedure e dei flussi di lavoro per l'uso di un registro locale, ad esempio un registro contenitori di Azure, per gestire copie di contenuto pubblico, ad esempio immagini di contenitori nell'hub Docker.

Rischi con contenuti pubblici

L'ambiente può avere dipendenze da contenuti pubblici, ad esempio immagini di contenitori pubblici, grafici Helm, criteri open policy agent (OPA) o altri artefatti. Ad esempio, è possibile eseguire nginx per il routing del servizio o docker build FROM alpine eseguendo il pull delle immagini direttamente dall'hub Docker o da un altro registro pubblico.

Senza controlli appropriati, la presenza di dipendenze dal contenuto del Registro di sistema pubblico può comportare rischi per lo sviluppo di immagini e i flussi di lavoro di distribuzione. Per attenuare i rischi, mantenere le copie locali del contenuto pubblico, quando possibile. Per informazioni dettagliate, vedere il blog di Open Container Initiative.

Eseguire l'autenticazione con l'hub Docker

Come primo passaggio, se attualmente si estraggono immagini pubbliche dall'hub Docker come parte di un flusso di lavoro di compilazione o distribuzione, è consigliabile eseguire l'autenticazione usando un account dell'hub Docker anziché effettuare una richiesta pull anonima.

Quando si effettuano richieste pull anonime frequenti, si potrebbero vedere errori Docker simili a ERROR: toomanyrequests: Too Many Requests. o You have reached your pull rate limit.. Esegui l'autenticazione con Docker Hub per evitare questi errori.

Nota

A partire dal 2 novembre 2020, i limiti di velocità di download si applicano alle richieste anonime e autenticate all'hub Docker dagli account del piano gratuito Docker e vengono applicati rispettivamente dall'indirizzo IP e dall'ID Docker.

Quando si stima il numero di richieste pull, tenere presente che quando si usano i servizi del provider di servizi cloud o si lavora dietro un NAT aziendale, più utenti verranno presentati all'hub Docker in modo aggregato come subset di indirizzi IP. L'aggiunta dell'autenticazione dell'account a pagamento Docker alle richieste effettuate all'hub Docker consente di evitare potenziali interruzioni del servizio a causa della limitazione dei limiti di velocità.

Per informazioni dettagliate, vedere Prezzi e sottoscrizioni di Docker e Condizioni per il servizio Docker.

Token di accesso dell'hub Docker

Docker Hub supporta i token di accesso personali come alternative a una password Docker durante l'autenticazione all'hub Docker. I token sono consigliati per i servizi automatizzati che eseguono il pull delle immagini dall'hub Docker. È possibile generare più token per utenti o servizi diversi e revocare i token quando non sono più necessari.

Per eseguire l'autenticazione con docker login usando un token, omettere la password nella riga di comando. Quando viene richiesta una password, immettere invece il token. Se è stata abilitata l'autenticazione a due fattori per l'account Docker Hub, è necessario usare un token di accesso personale durante l'accesso dall'interfaccia della riga di comando di Docker.

Eseguire l'autenticazione dai servizi di Azure

Diversi servizi di Azure, tra cui servizio app e Istanze di Azure Container supportano il pull di immagini da registri pubblici, ad esempio l'hub Docker per le distribuzioni di contenitori. Se è necessario distribuire un'immagine dall'hub Docker, è consigliabile configurare le impostazioni per l'autenticazione usando un account dell'hub Docker. Esempi:

Servizio app

  • Origine immagine: Hub Docker
  • Accesso al repository: privato
  • Account di accesso: <nome utente dell'hub Docker>
  • Password: <token dell'hub Docker>

Per informazioni dettagliate, vedere Pull autenticati di Docker Hub in servizio app.

Istanze di Azure Container

  • Origine immagine: Hub Docker o altro registro
  • Tipo di immagine: Privato
  • Server di accesso del Registro di sistema immagini: docker.io
  • Nome utente del Registro di sistema immagini: <nome utente dell'hub Docker>
  • Password del Registro di sistema delle immagini: <token dell'hub Docker>
  • Immagine: nome docker.io/< repo>:<tag>

Configurare La cache degli artefatti per l'utilizzo del contenuto pubblico

La procedura consigliata per l'utilizzo del contenuto pubblico consiste nel combinare l'autenticazione del Registro di sistema e la funzionalità Cache artefatti. È possibile usare Artifact Cache per memorizzare nella cache gli artefatti del contenitore nelle Registro Azure Container anche nelle reti private. L'uso di Artifact Cache non solo protegge i limiti di frequenza del Registro di sistema, ma aumenta notevolmente l'affidabilità pull in combinazione con Registro Azure Container con replica geografica per eseguire il pull degli artefatti da qualsiasi area più vicina alla risorsa di Azure. Inoltre, è anche possibile usare tutte le funzionalità di sicurezza di Registro Azure Container da offrire, tra cui reti private, configurazione del firewall, entità servizio e altro ancora. Per informazioni complete sull'uso di contenuto pubblico con ACR Artifact Cache, vedere l'esercitazione su Artifact Cache .

Importare immagini in un registro Azure Container

Per iniziare a gestire le copie delle immagini pubbliche, è possibile creare un registro Azure Container se non ne è già disponibile uno. Creare un registro usando l'interfaccia della riga di comando di Azure, portale di Azure, Azure PowerShell o altri strumenti.

Come passaggio consigliato una sola volta, importare immagini di base e altri contenuti pubblici nel registro Azure Container. Il comando az acr import nell'interfaccia della riga di comando di Azure supporta l'importazione di immagini da registri pubblici, ad esempio Docker Hub e Registro Contenitori Microsoft e da altri registri contenitori privati.

az acr import non richiede un'installazione docker locale. È possibile eseguirlo con un'installazione locale dell'interfaccia della riga di comando di Azure o direttamente in Azure Cloud Shell. Supporta immagini di qualsiasi tipo di sistema operativo, immagini a più architetture o artefatti OCI, ad esempio grafici Helm.

A seconda delle esigenze dell'organizzazione, è possibile importare in un registro dedicato o in un repository in un registro condiviso.

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

Aggiornare i riferimenti alle immagini

Gli sviluppatori di immagini dell'applicazione devono assicurarsi che il codice faccia riferimento al contenuto locale sotto il proprio controllo.

  • Aggiornare i riferimenti alle immagini per usare il Registro di sistema privato. Ad esempio, aggiornare un'istruzione FROM baseimage:v1 in un Dockerfile in FROM myregistry.azurecr.io/mybaseimage:v1
  • Configurare le credenziali o un meccanismo di autenticazione per l'uso del Registro di sistema privato. Il meccanismo esatto dipende dagli strumenti usati per accedere al Registro di sistema e dal modo in cui si gestisce l'accesso utente.
    • Se si usa un cluster Kubernetes o servizio Azure Kubernetes per accedere al Registro di sistema, vedere gli scenari di autenticazione.
    • Altre informazioni sulle opzioni per l'autenticazione con un registro Azure Container.

Automatizzare gli aggiornamenti delle immagini dell'applicazione

Espandendo l'importazione di immagini, configurare un'attività di Registro Azure Container per automatizzare le compilazioni di immagini dell'applicazione quando vengono aggiornate le immagini di base. Un'attività di compilazione automatizzata può tenere traccia sia degli aggiornamentidelle immagini di base che degli aggiornamenti del codice sorgente.

Per un esempio dettagliato, vedere Come usare e gestire il contenuto pubblico con Registro Azure Container Attività.

Nota

Una singola attività preconfigurata può ricompilare automaticamente ogni immagine dell'applicazione che fa riferimento a un'immagine di base dipendente.

Passaggi successivi

  • Altre informazioni sulle attività del Registro Azure Container per compilare, eseguire, eseguire, eseguire e applicare patch alle immagini del contenitore in Azure.
  • Vedere How to consume and maintain public content with Registro Azure Container Tasks for an automated gating workflow to update base images to your environment (Come usare e gestire contenuti pubblici con attività di Registro Azure Container per un flusso di lavoro automatizzato di controllo per aggiornare le immagini di base all'ambiente.
  • Per altri esempi per automatizzare le compilazioni e gli aggiornamenti delle immagini, vedere le esercitazioni sulle attività del Registro Azure Container.