در این فصل لایه های Docker را بررسی میکنیم. با caching تصاویر برای build تصاویر آشنا می شویم و میبینم که registry های Docker چگونه هستند و چطور باعث پرکاربرد شدن Docker و افزایش استفاده از تصاویر(بیش از 20 میلیارد بار در ماه استفاده!!!!!) می شوند.
بعد از اتمام این فصل دانش مدیریت registry های خود را خواهید داشت.
نمای کلی لایه های داکر:
در فصل های قبل تصویر ubuntu را از Docker Hub دریافت کردیم و تمام کارهای خود را روی این تصویر انجام دادیم. در تمرین آخر فصل اول هم تصویر دیتابیس postgres را از این registry عمومی دریافت کردیم. بدون registry های عمومی داکر تقریبا هیچ قدرت خاص و برتری خاصی نسبت به رقبای خود ندارد.
در این فصل بیشتر زمان خود را روی بررسی عمیق تر مفهوم تصاویر Docker میگذاریم. تصویر ubuntu که در فصل های قبل با آن کار کردیم یک ویژگی بسیار مهم را ندارد:
این تصویر باعث کاهش فرآیند لازم برای داکرایز کردن پروژه نمی شود!
درک عملکرد صحیح لایه های مختلف تصاویر، مدیریت و تگ های تصاویر و عملکرد رجیستری ها برای استفاده ی سریع تر از تصاویر مهم ترین موضوعات این فصل هستند.
تصاویر Docker تنها برای دیپلوی کاربرد ندارند و بهترین ابزار برای پیاده سازی محیط توسعه برنامه( application development ) نیز هستند. هر تصویر یک نسخه ی self-contained version از یک برنامه است که در آن هر چیزی که برای اجرای برنامه نیاز داریم، وجود دارد. این ویژگی تصاویر به توسعه دهندگان اجازه میدهد تا کاری که روی کامپیوتر شخصی خود میکنند را به راحتی هرجایی که میخواهند deploy کنند و رفتار محیط های development ، test environment و production دقیقا مشابه هم باشند تا مطمئن شویم تمام برنامه یا برنامه ها(در حال multi-tier یا microservice) به درستی کار میکنند. پس در صورتی که از عملکرد درست برنامه در محیط development مطمئن باشیم میتوانیم تصویر را ساخته و منتشر کنیم. همچنین هسته ی برنامه ی داکرایز شده باید بین تمام توسعه دهندگان ثابت باشد(مثلا Dockerfile همه ی توسعه دهندگان یکسان باشد.) تا زمانی که تعداد زیادی از توسعه دهندگان که روی یک پروژه کار میکنند، به مشکل نخورند!
در این فصل برای tagging تصاویر هم استانداردهایی را مشخص می کنیم تا بتوانیم مشکلات را کاهش داده و در صورت بروز مشکل به نسخه های قبلی تصاویر خود roll back کنیم. این فصل تئوری های زیادی ندارد ولی همان موضوعات تئوری محدود را نیز در مثال های مرتبط کاملا باز میکنیم.