Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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, incluse le immagini dei contenitori nell'hub Docker.
Rischi dei contenuti pubblici
L'ambiente potrebbe dipendere da contenuti pubblici, ad esempio immagini di contenitori pubblici, grafici Helm, criteri OPA ( Open Policy Agent ) o altri artefatti. Ad esempio, è possibile eseguire nginx per il routing del servizio o docker build FROM alpine
eseguendo il pull delle immagini direttamente da Docker Hub o da un altro registro pubblico.
Senza controlli appropriati, la dipendenza dai contenuti dei registri pubblici può introdurre dei rischi nei flussi di lavoro di sviluppo e distribuzione di immagini. Per mitigare tale rischio, è opportuno conservare le copie locali del contenuto pubblico, quando possibile. Per informazioni dettagliate, vedere il blog Open Container Initiative.
Eseguire l'autenticazione in Docker Hub
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 frequenti richieste pull anonime, è possibile che vengano visualizzati errori Docker simili a ERROR: toomanyrequests: Too Many Requests.
o You have reached your pull rate limit.
. Autenticarsi su 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. Questi limiti vengono applicati rispettivamente dall'indirizzo IP e dall'ID Docker.
Per stimare il numero delle richieste di pull, tenere presente che quando si utilizzano servizi di fornitori di servizi cloud o si lavora dietro un NAT aziendale, più utenti vengono visti da Docker Hub come un insieme di indirizzi IP. Aggiungendo l'autenticazione dell'account a pagamento Docker alle richieste effettuate all'hub Docker, è possibile evitare potenziali interruzioni del servizio causate dalla limitazione dei limiti di velocità.
Per informazioni dettagliate, vedere i prezzi e gli abbonamenti Docker e le condizioni d'uso di Docker.
Token di accesso a Docker Hub
Docker Hub supporta token di accesso personali come alternative a una password Docker durante l'autenticazione in Docker Hub. I token sono consigliati per i servizi automatizzati che eseguono il pull delle immagini da Docker Hub. È possibile generare più token per utenti o servizi diversi e revocare i token quando non sono più necessari.
Per eseguire l'autenticazione a docker login
usando un token, omettere la password nella riga di comando. Quando viene richiesta una password, immettere il token al suo posto. 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 da Docker Hub, è consigliabile configurare le impostazioni per l'autenticazione usando un account Docker Hub. Esempi:
Servizio app
- Origine immagine: Docker Hub
- Accesso al repository: privato
- Accesso: <nome utente Docker Hub>
- Password: <token Docker Hub>
Per informazioni dettagliate, vedere Pull Docker Hub autenticati in Servizio app.
Istanze di Azure Container
- Origine immagine: Docker Hub o altro registro
- Tipo di immagine: Privato
- Server di accesso al registro immagini: docker.io
- Nome utente del registro immagini: <nome utente Docker Hub>
- Password registro immagini: <token Docker Hub>
- Immagine: docker.io/<nome del repository>:<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 degli artefatti. Usare Artifact Cache per memorizzare nella cache gli artefatti del contenitore nel Registro Azure Container anche nelle reti private. L'uso di Artifact Cache non solo ti protegge dai limiti di frequenza del registro, ma aumenta anche notevolmente l'affidabilità del pull quando combinato con Azure Container Registry con replica geografica per eseguire il pull degli artefatti dalla regione più vicina alla tua risorsa di Azure. Inoltre, è possibile utilizzare tutte le funzionalità di sicurezza offerte da Azure Container Registry, tra cui reti private, configurazione del firewall, principali di servizio e altro ancora. Per informazioni complete sull'uso di contenuto pubblico con ACR Artifact Cache, vedere l'esercitazione relativa alla cache degli artefatti .
Importare immagini in un registro Azure Container
Per gestire le copie delle immagini pubbliche, creare un registro Azure Container, se non ne è già disponibile uno. Usare l'interfaccia della riga di comando di Azure, il portale di Azure, Azure PowerShell o altri strumenti per creare un registro.
Come passaggio monouso consigliato, 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 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 multiarchitetture o artefatti OCI, ad esempio grafici Helm.
A seconda delle esigenze dell'organizzazione, è possibile importare in un registro dedicato o in un repository all'interno di 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 inFROM myregistry.azurecr.io/mybaseimage:v1
per un registro non DNL oFROM myregistry-abc123.azurecr.io/mybaseimage:v1
per un registro abilitato per DNL. Per altre informazioni sulle opzioni DNL durante la creazione del Registro di sistema e sulle implicazioni del nome DNS, vedere Avvio rapido - Creare un registro nel portale. - Configurare le credenziali o un meccanismo di autenticazione per l'uso del registro di sistema privato. Il meccanismo esatto dipende dagli strumenti utilizzati per accedere al registro di sistema e dal modo in cui si gestisce l'accesso utente.
- Se si usa un cluster Kubernetes o un servizio Azure Kubernetes per accedere al registro di sistema, vedere gli scenari di autenticazione.
- Ulteriori informazioni sulle opzioni di autenticazione con un registro Azure Container.
Automatizzare gli aggiornamenti delle immagini dell'applicazione
Per automatizzare le compilazioni di immagini dell'applicazione quando vengono aggiornate le immagini di base, configurare un'attività di Registro Azure Container. Questo approccio si espande sull'importazione di immagini. Un'attività di compilazione automatizzata può tenere traccia sia degli aggiornamenti delle immagini di base che degli aggiornamenti del codice sorgente.
Per un esempio dettagliato, vedere Come usare e gestire il contenuto pubblico con le attività del Registro Azure Container.
Nota
Un'attività preconfigurata può ricompilare automaticamente ogni immagine dell'applicazione che fa riferimento all'immagine di base dipendente.
Passaggi successivi
- Altre informazioni su Attività del Registro Azure Container (ACR) per compilare, eseguire, effettuare il push e applicare patch alle immagini del contenitore in Azure.
- Vedere Come utilizzare e gestire il contenuto pubblico con le attività del Registro Azure Container per un flusso di lavoro di controllo automatico ai fini dell'aggiornamento delle immagini di base per l'ambiente di riferimento.
- Per altri esempi di automatizzazione delle compilazioni e degli aggiornamenti delle immagini, vedere le esercitazioni sulle attività di Registro Azure Container.