در این قسمت سوم از سری مقالات مربوط به استفاده از تصاویر Docker Hardened (DHI)، به بررسی روشهای سفارشیسازی این تصاویر میپردازیم. هدف اصلی این تصاویر، ایجاد یک پایه امن و استاندارد برای برنامهها است، اما توسعهدهندگان اغلب نیاز به افزودن ابزارها و کتابخانههای خاصی دارند. این مقاله دو استراتژی اصلی را برای سفارشیسازی DHI معرفی میکند: استفاده از رابط کاربری Docker Hub برای تیمهای پلتفرم (ایجاد "تصاویر طلایی") و استفاده از الگوهای ساخت چند مرحلهای (Multi-stage build) برای توسعهدهندگان.
تصاویر DHI به طور عمدی مینیمال طراحی شدهاند و فاقد مدیران بسته (مانند apt، apk، yum)، ابزارهای کمکی (مانند wget، curl) و حتی شلهایی مانند bash یا sh هستند. این یک ویژگی امنیتی است، زیرا اگر یک مهاجم به ظرف (Container) نفوذ کند، با یک جعبه ابزار خالی مواجه میشود. با این حال، توسعهدهندگان اغلب در طول راهاندازی به این ابزارها نیاز دارند، مانند نصب یک عامل نظارتی، یک گواهی CA سفارشی یا یک کتابخانه خاص.
استفاده از رابط کاربری Docker Hub برای تیمهای پلتفرم، امکان ایجاد تصاویر پایه "تأیید شده" را فراهم میکند که همیشه شامل اجزای مورد نیاز تیمهای داخلی است. به عنوان مثال، یک تیم ممکن است بخواهد یک تصویر Node.js استاندارد ایجاد کند که همیشه شامل کتابخانههای خاص خود باشد. این روش برای ایجاد تصاویر طلایی که به عنوان پایه برای پروژههای مختلف استفاده میشوند، ایدهآل است.
الگوی ساخت چند مرحلهای (Multi-stage build) به توسعهدهندگان اجازه میدهد تا تصاویر سفارشی را در حین ساخت برنامه خود ایجاد کنند. این روش به توسعهدهندگان امکان میدهد تا ابزارهای مورد نیاز خود را در یک مرحله ساخت اضافه کنند و سپس آنها را در مرحله نهایی حذف کنند، که منجر به یک تصویر نهایی کوچکتر و امنتر میشود. این رویکرد به توسعهدهندگان انعطافپذیری بیشتری در سفارشیسازی تصاویر DHI میدهد، در حالی که مزایای امنیتی پایه را حفظ میکند.
مشاهده مطلب اصلی