
Ceci est le deuxiÚme article d'une série d'articles, qui abordera les limitations liées au téléchargement des images de conteneurs.
Dans Nous avons examiné en détail les images stockées dans Docker Hub, le plus grand registre d'images de conteneurs. Nous écrivons cela afin que vous compreniez mieux comment nos conditions de service mises à jour affecteront les équipes de développement utilisant Docker Hub pour gérer les images de conteneurs et les pipelines CICD.
Les limitations concernant la fréquence des téléchargements ont été annoncées précédemment dans nos . Nous examinerons plus en détail les limitations de fréquence qui entreront en vigueur à partir du 1er novembre 2020 :
Plan tarifaire gratuit, utilisateurs anonymes : 100 téléchargements toutes les 6 heures
Plan tarifaire gratuit, utilisateurs authentifiés : 200 téléchargements toutes les 6 heures
Plan tarifaire Pro : sans limitations
Plan tarifaire Ăquipe : sans limitations
La frĂ©quence des tĂ©lĂ©chargements cĂŽtĂ© Docker est dĂ©finie comme le nombre de requĂȘtes de manifests Ă Docker Hub. Les limitations de frĂ©quence des tĂ©lĂ©chargements d'images dĂ©pendent du type de compte demandant l'image, et non du type de compte propriĂ©taire de l'image. Pour les utilisateurs anonymes (non authentifiĂ©s), la frĂ©quence des tĂ©lĂ©chargements est liĂ©e Ă l'adresse IP.
N.B. Plus de subtilitĂ©s et des meilleures pratiques vous seront fournies . De plus, vous pouvez le suivre quand cela vous convient â tant en termes de temps que d'humeur.
Nous recevons des questions de nos clients et de la communautĂ© concernant les couches des images de conteneurs. Nous ne tenons pas compte des couches de l'image lors de la limitation de la frĂ©quence de tĂ©lĂ©chargement, car nous limitons le tĂ©lĂ©chargement des manifests, et le nombre de couches (requĂȘtes blob) n'est actuellement pas limitĂ©. Ce changement est basĂ© sur les retours de la communautĂ©, afin de le rendre plus convivial pour les utilisateurs, de sorte qu'il n'est pas nĂ©cessaire de compter les couches sur chaque image utilisĂ©e.
Analyse détaillée des fréquences de téléchargement des images de Docker Hub
Nous avons consacrĂ© beaucoup de temps Ă analyser le tĂ©lĂ©chargement des images depuis Docker Hub afin de dĂ©terminer la cause des limitations de vitesse ainsi que la maniĂšre dont celles-ci doivent ĂȘtre appliquĂ©es. Ce que nous avons observĂ© a confirmĂ© que, en fait, tous les utilisateurs tĂ©lĂ©chargent des images Ă une vitesse prĂ©visible pour des flux de travail typiques. Cependant, il y a une influence notoire d'un petit nombre d'utilisateurs anonymes, par exemple, environ 30 % de tous les tĂ©lĂ©chargements proviennent seulement de 1 % d'utilisateurs anonymes.

Les nouvelles limitations sont basĂ©es sur cette analyse, donc la plupart de nos utilisateurs ne seront pas affectĂ©s. Ces limitations sont conçues pour reflĂ©ter l'utilisation normale par les dĂ©veloppeurs â exploration de Docker, dĂ©veloppement de code, crĂ©ation d'images, etc.
Aide aux développeurs pour mieux comprendre la limitation du taux de téléchargement
Maintenant que nous avons compris l'influence ainsi que les limites qui doivent ĂȘtre Ă©tablies, nous devions dĂ©finir les conditions techniques de fonctionnement de ces limitations. Limiter le tĂ©lĂ©chargement des images depuis le registre Docker est assez complexe. Vous ne trouverez pas d'API pour les tĂ©lĂ©chargements dans la documentation du registre â elle n'existe tout simplement pas. En rĂ©alitĂ©, le tĂ©lĂ©chargement d'une image reprĂ©sente une combinaison de demandes de manifeste et de blobs via l'API, et celles-ci sont exĂ©cutĂ©es diffĂ©remment, en fonction de l'Ă©tat du client et de l'image demandĂ©e.
Par exemple, si vous avez dĂ©jĂ une image, Docker Engine fera une demande de manifeste, comprendra qu'il possĂšde dĂ©jĂ toutes les couches nĂ©cessaires en fonction du manifeste fourni, puis s'arrĂȘtera. D'autre part, si vous tĂ©lĂ©chargez une image qui prend en charge plusieurs architectures, la demande de manifeste retournera une liste de manifestes d'images pour chaque architecture prise en charge. Ensuite, Docker Engine fera une autre demande de manifeste concernant l'architecture spĂ©cifique sur laquelle il fonctionne, et en retour, il obtiendra la liste de toutes les couches de l'image. Il demandera alors chaque couche manquante (blob).
N.B. Ce sujet est abordĂ© de maniĂšre plus approfondie dans , dans lequel nous examinerons tous ses outils : des abstractions de base aux paramĂštres rĂ©seau, en passant par les subtilitĂ©s de travail avec diffĂ©rents systĂšmes d'exploitation et langages de programmation. Vous dĂ©couvrirez la technologie et comprendrez oĂč et comment utiliser Docker de maniĂšre optimale.
Il s'avĂšre que le tĂ©lĂ©chargement d'une image implique en rĂ©alitĂ© une ou deux requĂȘtes de manifeste, ainsi que d'innombrables requĂȘtes de couches (blob). Historiquement, Docker a suivi la frĂ©quence des tĂ©lĂ©chargements en fonction des couches, car cela est le plus liĂ© Ă l'utilisation de la bande passante. Cependant, nous avons Ă©coutĂ© la communautĂ©, car cela complique les choses, puisque nous devons suivre le nombre de couches demandĂ©es, ce qui entraĂźnera l'ignorance des meilleures pratiques concernant le travail avec Dockerfile, et sera Ă©galement moins intuitif pour les utilisateurs souhaitant simplement travailler avec le registre sans trop se soucier des dĂ©tails.
Nous limitons donc le nombre de requĂȘtes en fonction des requĂȘtes de manifeste. Cela est directement liĂ© au tĂ©lĂ©chargement des images, ce qui est facile Ă comprendre pour les utilisateurs. Cependant, il y a un petit dĂ©tail â si vous essayez de tĂ©lĂ©charger une image qui existe dĂ©jĂ , la requĂȘte sera tout de mĂȘme prise en compte, mĂȘme si vous ne tĂ©lĂ©chargerez pas les couches. Quoi qu'il en soit, nous espĂ©rons que cette mĂ©thode de limitation du taux de tĂ©lĂ©chargement sera Ă la fois Ă©quitable et pratique pour les utilisateurs.
Nous attendons vos retours
Nous surveillerons les limitations et apporterons les corrections nĂ©cessaires en fonction des scĂ©narios d'utilisation typiques, afin de nous assurer que les limitations conviennent Ă chaque type d'utilisateur, et en particulier, nous nous efforcerons de ne jamais gĂȘner les dĂ©veloppeurs dans leur travail.
Restez à l'écoute des messages dans les semaines à venir, un autre article sur la configuration CI et les systÚmes opérationnels sera publié à la lumiÚre de ces changements.
Enfin, dans le cadre du soutien à la communauté des développeurs de logiciels open source, jusqu'au 1er novembre, nous fournirons de nouveaux plans tarifaires pour le code source ouvert. Pour postuler, vous devez remplir un formulaire .
Pour plus d'informations sur les derniĂšres modifications des conditions de service, veuillez contacter .
Pour ceux qui doivent lever les limitations sur la fréquence de téléchargement des images, Docker propose un téléchargement illimité des images en tant que fonctionnalité . Comme toujours, nous attendons vos retours et vos questions .
Source : habr.com
