در قسمت 1 این وبلاگ به یک شیرجه عمیق رفتیم که تمام تصاویر ذخیره شده در داکر هاب ، بزرگترین رجیستری کانتینر جهان را مورد تجزیه و تحلیل قرار داد. ما این کار را انجام دادیم تا درک بهتری از چگونگی به روزرسانی در شرایط جدید خدمات ما بر تیم های توسعه دهنده که از Docker Hub برای مدیریت تصاویر کانتینرها و خطوط لوله CI / CD استفاده می کنند ، تأثیر بگذارد. محدودیت نرخ برای کشیدن تصویر کانتینر. این همچنین به عنوان بخشی از ارتباطات به روز شده شرایط خدمات Docker (ToS) ما اعلام شد. ما محدودیت های میزان کشش زیر را به برنامه های اشتراکی داکر که از اول نوامبر 2020 اجرا خواهد شد ، تفصیل داد:
- برنامه رایگان – کاربران ناشناس: 100 بار در هر 6 ساعت
- برنامه رایگان – کاربران معتبر: 200 بار در هر 6 ساعت [19659004] Plan Pro – نامحدود
- نقشه تیم – نامحدود
Docker محدودیت های نرخ کشش را به عنوان تعداد درخواست های آشکار به داکر هاب تعریف می کند. محدودیت های نرخ کشیدن تصویر داکر براساس نوع حساب کاربر درخواست کننده تصویر است – نه نوع حساب صاحب تصویر. برای کاربران ناشناس (غیر مجاز) ، میزان کشش بر اساس آدرس IP شخصی محدود است.
ما در مورد لایه های تصویر کانتینر از مشتریان و جامعه سؤال کرده ایم. ما لایه های تصویر را به عنوان بخشی از محدودیت های میزان کشش در نظر نمی گیریم. از آنجا که ما در درخواست های آشکار محدود می کنیم ، تعداد لایه ها (درخواست های حباب) مربوط به کشش در این زمان نامحدود است. این تغییر مبتنی بر بازخورد جامعه است تا کاربرپسندتر باشد ، بنابراین کاربران لازم نیست که روی هر تصویری که از آنها استفاده می شود ، لایه ها را بشمارند.
در تعیین دلیل محدودیت نرخ و نحوه استفاده از آنها ، ما زمان قابل توجهی را صرف تجزیه و تحلیل بارگیری تصاویر از داکر هاب کردیم. آنچه پیدا کردیم تأیید کرد که اکثریت قریب به اتفاق کاربران داکر تصاویر را با سرعتی که انتظار دارید برای گردش کار عادی بکشید ، کشیدند. با این حال ، تأثیر بزرگی از تعداد کمی از کاربران ناشناس وجود دارد. به عنوان مثال ، تقریباً 30٪ از بارگیریها در هاب فقط از 1٪ از کاربران ناشناس ما صورت می گیرد.
محدودیت های جدید کشیدن بر اساس این تجزیه و تحلیل است ، به گونه ای که بیشتر کاربران ما تحت تأثیر قرار نمی گیرند. این محدودیت ها برای استفاده در موارد استفاده عادی برای توسعه دهندگان طراحی شده است – یادگیری داکر ، تدوین کد ، تصاویر ساختمانی و موارد دیگر. ما باید در جایی که محدودیتها به زمین برسد ، ما باید در سطح فنی تعریف کنیم که این محدوده ها چگونه باید کار کنند محدود کردن کشیدن تصویر به رجیستری داکر پیچیده است. شما در مشخصات رجیستری API کشش پیدا نمی کنید – وجود ندارد. در حقیقت ، کشش تصویر در واقع ترکیبی از درخواست APP آشکار و Blob است و این بسته به وضعیت مشتری و تصویر مورد نظر در الگوهای مختلف انجام می شود.
به عنوان مثال ، اگر از قبل عکس را دارید ، مشتری داکر موتور درخواستی را برای شما صادر می کند ، متوجه می شود که تمام لایه های ارجاع شده را بر اساس مانیفست برگردانده شده ، متوقف کرده و متوقف می شود. از طرف دیگر ، اگر در حال کشیدن تصویری هستید که از معماری های متعدد پشتیبانی می کند ، درخواست آشکار صادر می شود و لیستی از مانیفست های تصویر برای هر معماری پشتیبانی شده را برمی گردانید. سپس Docker Engine درخواست معماری دیگری را برای معماری که در آن اجرا می شود صادر می کند و لیستی از تمام لایه های موجود در آن تصویر را دریافت می کند. سرانجام ، آن را درخواست خواهد کرد که هر لایه (حباب) از دست رفته. از نظر تاریخی ، داکر محدودیت های نرخ را بر اساس حباب ها (لایه ها) کنترل می کند. این امر به این دلیل است که یک لکه با استفاده از پهنای باند ارتباط نزدیکی دارد. با این وجود ، ما به بازخوردهای جامعه گوش داده ایم که ردیابی این کار دشوار است ، بسته به اینکه چند لایه تصویری که می کشید ، به یک تجربه متناقض منجر می شود ، از عملکردهای خوب Dockerfile دلسرد می کند و برای کاربرانی که فقط می خواهند چیزهای خود را بدست آورند ، شهودی نیست. بدون اینکه در زمینه تصاویر و ثبت های Docker متخصص باشید.
به همین ترتیب ، ما بر اساس درخواست های آشکار در حال حرکت به جلو محدود می کنیم. این مزیت این است که مستقیم تر با کشش همراه است ، بنابراین درک کاربران آسان است. یک تجارت کوچک وجود دارد – اگر تصویری را که از قبل دارید بکشید ، حتی اگر لایه ها را بارگیری نکنید ، همچنان حساب می شود. به طور کلی ، امیدواریم که این روش محدود کردن نرخ هم عادلانه باشد و هم کاربر پسند.
ما از نظرات شما استقبال می کنیم
مطمئن شوید که محدوده ها برای هر ردیف کاربر مناسب است ، و به ویژه این که ما هرگز برنامه نویسان را از انجام کار محروم نمی کنیم.
در هفته های آینده با ما همراه باشید تا یک پست وبلاگ درباره پیکربندی CI و سیستم های تولیدی با توجه به این تغییرات
سرانجام ، به عنوان بخشی از تعهدات داکر به جامعه منبع آزاد ، قبل از 1 نوامبر ما در مورد برنامه های منبع باز جدید اعلام خواهیم کرد. برای درخواست یک برنامه منبع باز ، لطفا فرم کوتاه را در اینجا تکمیل کنید.
برای کسب اطلاعات بیشتر در مورد شرایط اخیر خدمات ، لطفاً به سؤالات متداول مراجعه کنید.
برای کاربرانی که به محدودیت های کشش تصویر بالاتر نیاز دارند ، Docker نیز ارائه می دهد کشیدن نامحدود تصویر به عنوان ویژگی برنامه های Pro و Team. برای مشاهده برنامه های موجود به www.docker.com/pricing مراجعه کنید.
مثل همیشه ، ما از سؤالات و انتقادات و پیشنهادات شما در [email protected] استقبال می کنیم.