
Questo è il secondo articolo di una serie di articoli, in cui verranno esaminate le limitazioni nel download delle immagini dei container.
In Abbiamo analizzato in dettaglio le immagini memorizzate in Docker Hub, il più grande registry di immagini dei container. Scriviamo questo per aiutarvi a comprendere come i nostri aggiornamenti ai Termini di servizio influenzeranno i team di sviluppo che utilizzano Docker Hub per gestire immagini di container e pipeline CICD.
Le limitazioni sulla frequenza dei download sono state annunciate in precedenza nei nostri . Esamineremo in dettaglio le limitazioni sulla frequenza che entreranno in vigore il 1 novembre 2020:
Piano gratuito, utenti anonimi: 100 download ogni 6 ore
Piano gratuito, utenti registrati: 200 download ogni 6 ore
Piano Pro: senza limitazioni
Piano Team: senza limitazioni
La frequenza dei download da Docker è definita come il numero di richieste di manifest al Docker Hub. Le limitazioni sulla frequenza di download delle immagini dipendono dal tipo di account che richiede l'immagine, non dal tipo di account del proprietario dell'immagine. Per gli utenti anonimi (non autenticati), la frequenza di download è legata all'indirizzo IP.
N.B. Ulteriori dettagli e casi di best practice li troverete . Inoltre, potete seguirlo quando vi è più comodo - sia in termini di tempo che di stato d'animo.
Riceviamo domande da clienti e dalla comunità riguardo ai livelli delle immagini dei container. Non consideriamo i livelli dell'immagine quando limitiamo la frequenza di download, poiché limitiamo il download dei manifesti e il numero di livelli (richieste blob) attualmente non è limitato. Questa modifica è basata sul feedback della comunità per renderlo più amichevole per gli utenti, così non c'è bisogno di contare i livelli per ogni immagine utilizzata.
Analisi dettagliata delle frequenze di download delle immagini di Docker Hub
Abbiamo dedicato molto tempo ad analizzare il download delle immagini da Docker Hub per identificare la causa delle limitazioni di velocità e come dovrebbero essere impostate. Ciò che abbiamo osservato ha confermato che praticamente tutti gli utenti scaricano le immagini a una velocità prevedibile per i flussi di lavoro standard. Tuttavia, c'è un impatto significativo di un piccolo numero di utenti anonimi; ad esempio, circa il 30% di tutti i download proviene solo dall'1% degli utenti anonimi.

Le nuove limitazioni sono basate su questa analisi, quindi la maggior parte dei nostri utenti non ne risentirà. Queste restrizioni sono state impostate per riflettere l'uso comune da parte degli sviluppatori — esplorazione di Docker, sviluppo del codice, creazione di immagini, ecc.
Supporto agli sviluppatori per una migliore comprensione delle limitazioni della frequenza di download
Ora che comprendiamo l'impatto e dove dovrebbero essere i limiti, dobbiamo definire le condizioni tecniche per l'applicazione di queste restrizioni. Limitare il download delle immagini dal registro Docker è piuttosto complesso. Non troverete API per i caricamenti nella documentazione del registro — semplicemente non esiste. In effetti, il download di un'immagine rappresenta una combinazione di richieste di manifesto e blob nell'API, e vengono eseguite in modo diverso a seconda dello stato del client e dell'immagine richiesta.
Ad esempio, se avete già un'immagine, Docker Engine farà una richiesta di manifesto, comprenderà che ha già tutti i layer necessari sulla base del manifesto ricevuto, dopodiché si fermerà. D'altra parte, se state scaricando un'immagine che supporta più architetture, la richiesta di manifesto restituirà un elenco di manifesti delle immagini per ciascuna architettura supportata. Successivamente, Docker Engine emetterà un'altra richiesta di manifesto riguardo a un'architettura specifica su cui sta lavorando, e in risposta riceverà un elenco di tutti i layer dell'immagine. Poi richiederà ogni layer mancante (blob).
N.B. Questo argomento è trattato in modo più ampio nel , in cui esamineremo tutti i suoi strumenti: dalle principali astrazioni alle opzioni di rete, alle complessità del lavoro con diversi sistemi operativi e linguaggi di programmazione. Scoprirai la tecnologia e capirai dove e come utilizzare al meglio Docker.
Quindi, il download di un'immagine è in realtà una o due richieste di manifesto, oltre a una serie infinita di richieste per i livelli (blob). Storicamente, Docker ha monitorato la frequenza dei download in base ai livelli, poiché questo è più legato all'utilizzo della larghezza di banda. Tuttavia, abbiamo ascoltato la comunità, poiché è più complicato, dato che è necessario tracciare il numero di livelli richiesti, il che porterà a ignorare le best practices relative al lavoro con Dockerfile, rendendo anche meno intuitivo per gli utenti che desiderano semplicemente lavorare con il registry senza approfondire i dettagli.
Limitiamo il numero di richieste in base alle richieste di manifesti. Questo è direttamente correlato al download delle immagini, il che è facilmente comprensibile per gli utenti. C'è, però, un piccolo dettaglio: se provi a scaricare un'immagine che hai già, la richiesta verrà comunque conteggiata, anche se non scaricherai i layer. In ogni caso, speriamo che questo metodo di limitazione della frequenza di download risulti equo e conveniente per gli utenti.
Aspettiamo i vostri feedback
Monitoreremo le limitazioni e apporteremo le modifiche necessarie basate su scenari d'uso standard, per assicurarci che le limitazioni siano adatte a tutti i tipi di utenti e, in particolare, ci impegneremo a non ostacolare mai il lavoro degli sviluppatori.
Rimanete sintonizzati nei prossimi giorni, ci sarà un altro articolo sulla configurazione di CI e sistemi di produzione alla luce di questi cambiamenti.
Infine, nell'ambito del supporto alla comunità degli sviluppatori di software open source, entro il 1° novembre offriremo nuovi piani tariffari per il codice open source. Per fare domanda, è necessario compilare un modulo. .
Per ulteriori informazioni sulle ultime modifiche ai termini di servizio, contattare .
Coloro che necessitano di aumentare i limiti sulla frequenza di download delle immagini, Docker offre download illimitati delle immagini come caratteristica . Come sempre, attendiamo il vostro feedback e le vostre domande .
Fonte: habr.com
