
Toto je druhý článok v sérii, v ktorom budeme skúmať obmedzenia pri sťahovaní obrazov kontajnerov.
V Podrobne sme preskúmali obrazy uložené v Docker Hub, najväčšom registry obrazov kontajnerov. Píšeme o tom, aby ste lepšie pochopili, ako naše aktualizované podmienky služby ovplyvnia vývojové tímy, ktoré používajú Docker Hub na správu obrazov kontajnerov a CICD pipeline.
O obmedzeniach týkajúcich sa frekvencie sťahovania sme už informovali v našich . Podrobnejšie sa pozrieme na obmedzenia týkajúce sa frekvencie, ktoré vstúpia do platnosti 1. novembra 2020:
Bezplatný plán, anonymní používatelia: 100 sťahovaní za 6 hodín
Bezplatný plán, registrovaní používatelia: 200 sťahovaní za 6 hodín
Plán Pro: bez obmedzení
Plán Team: bez obmedzení
Frekvencia sťahovania zo strany Docker sa určuje ako počet žiadostí o manifesty na Docker Hub. Obmedzenia frekvencie sťahovania obrazov závisia od typu účtu, ktorý si žiada obraz, a nie od typu účtu vlastníka obrazu. Pre anonymných (neregistrovaných) používateľov je frekvencia sťahovania viazaná na IP adresu.
N.B. Viac podrobností a osvedčených postupov získate . Môžete si ho spraviť, keď vám to vyhovuje - ako časovo, tak aj náladne.
Dostávame otázky od klientov a komunity ohľadom vrstiev obrazov kontajnerov. Nevypočítavame vrstvy obrazu pri obmedzení frekvencie sťahovania, pretože obmedzujeme sťahovanie manifestov, a počet vrstiev (žiadostí blob) v súčasnosti nie je obmedzený. Táto zmena je založená na spätných väzbách komunity, aby bola priateľskejšia k používateľom, takže používatelia nemusia počítať vrstvy pri každom použitom obraze.
Podrobná analýza frekvencií sťahovania obrazov Docker Hub
Strávili sme veľa času analýzou sťahovania obrazov z Docker Hub, aby sme určili dôvod obmedzenia rýchlosti a to, ako by sa malo obmedziť. To, čo sme videli, potvrdilo, že prakticky všetci používatelia sťahujú obrazy s predvídateľnou rýchlosťou pre typické pracovné postupy. Avšak je tu významný vplyv malej skupiny anonymných používateľov, napríklad približne 30 % všetkých sťahovaní pochádza iba od 1 % anonymných používateľov.

Nové obmedzenia sú založené na tejto analýze, takže väčšina našich používateľov nebude postihnutá. Tieto obmedzenia sú nastavené tak, aby odrážali bežné používanie vývojármi — štúdium Dockera, vývoj kódu, vytváranie obrazov atď.
Pomoc vývojárom na lepšie pochopenie obmedzenia frekvencie sťahovania
Teraz, keď sme pochopili vplyv a aj kde by mali byť hranice, museli sme určiť technické podmienky fungovania týchto obmedzení. Obmedziť sťahovanie obrazov z Docker registry je celkom zložité. Nenájdete API na sťahovanie v popise registry — jednoducho neexistuje. Sťahovanie obrazu totiž predstavuje kombináciu požiadaviek na manifest a blobs v API, a tie sa vykonávajú rôzne v závislosti od stavu klienta a žiadaného obrazu.
Napríklad, ak už máte obraz, Docker Engine vydá požiadavku na manifest, pochopí, že už má všetky potrebné vrstvy na základe prijatého manifestu, a potom sa zastaví. Na druhej strane — ak sťahujete obraz, ktorý podporuje viac architektúr, požiadavka na manifest vráti zoznam manifestov obrazov pre každú podporovanú architektúru. Potom Docker Engine vydá ďalšiu požiadavku na manifest týkajúcu sa konkrétnej architektúry, na ktorej pracuje, a v odpovedi dostane zoznam všetkých vrstiev obrazu. Potom sa bude žiadať každá chýbajúca vrstva (blob).
N.B. Oveľa podrobnejšie je táto téma vysvetlená na , kde rozoberieme všetky jeho nástroje: od základných abstrakcií po nastavenia siete, nuansy práce s rôznymi OS a programovacími jazykmi. Zoznámite sa s technológiou a pochopíte, kde a ako najlepšie používať Docker.
V podstate sťahovanie obrazu pozostáva z jedného alebo dvoch požiadaviek na manifest, ako aj od nula po nekonečno – požiadaviek na vrstvy (blob). Historicky Docker sledoval frekvenciu sťahovania na základe vrstiev, keďže to je najviac spojené s využívaním šírky pásma. Napriek tomu sme si vypočuli komunitu, že to je zložitejšie, pretože je potrebné sledovať požadované množstvo vrstiev, čo povedie k ignorovaniu najlepších praktík týkajúcich sa práce s Dockerfile, a tiež to bude intuitívne menej jasné pre používateľov, ktorí chcú len pracovať s registry, bez hlbokého porozumenia detailom.
Takže obmedzujeme počet požiadaviek na základe požiadaviek na manifesty. To je priamo spojené so sťahovaním obrazov, čo je pre používateľov ľahko pochopiteľné. Existuje však malý detail – ak sa pokúsite stiahnuť obraz, ktorý už máte, požiadavka sa aj tak započíta, aj keby ste sťahovali vrstvy. Tak či onak, dúfame, že tento spôsob obmedzenia frekvencie sťahovania bude spravodlivý a pohodlný pre používateľov.
Tešíme sa na vaše pripomienky
Budeme sledovať obmedzenia a urobiť potrebné úpravy na základe typických scenárov použitia, aby sme sa uistili, že obmedzenia sú vhodné pre každý typ používateľa, a navyše sa budeme snažiť nikdy nezabraňovať vývojárom v práci.
Sledujte správy v nasledujúcich týždňoch, čaká nás ďalší článok o nastavovaní CI a produkčných systémov v súvislosti s týmito zmenami.
Nakoniec v rámci podpory komunity vývojárov softvéru s otvoreným zdrojom, do 1. novembra poskytneme nové tarifné plány pre otvorený zdroj. Pre podanie žiadosti je potrebné vyplniť formulár .
Pre viac informácií o najnovších zmenách podmienok služby sa obráťte na .
Tým, ktorí potrebujú zvýšiť obmedzenia frekvencie sťahovania obrazov, Docker ponúka neobmedzené sťahovanie obrazov ako funkciu . Ako vždy, tešíme sa na vaše názory a otázky .
Zdroj: habr.com
