Docker and Containerization

در سال های اخیر، فناوری معروف به "کانتینرسازی" بسیار محبوب شده است. به عنوان یک مفهوم، به بسته بندی تمام موارد مورد نیاز برای اجرای یک برنامه، از جمله وابستگی های زمان اجرا، فایل های پیکربندی، و تنظیمات، و سپس اجرای برنامه در یک محیط ایزوله و آماده اشاره دارد. این شبیه به اجرای برنامه‌های جداگانه در ماشین‌های مجازی کاملاً مجزا است، اما عموماً بسیار سبک‌تر است، زیرا برنامه کانتینری مستقیماً بر روی سیستم عامل میزبان اجرا می‌شود و به سادگی با استفاده از ویژگی‌هایی که میزبان قبلاً ارائه می‌کند، جدا می‌شود. راه‌حل‌های نرم‌افزاری متعددی وجود دارند که امکان کانتینری‌سازی را فراهم می‌کنند، اما یکی از محبوب‌ترین آنها Docker است.


Containerization

جContainerization مجازی سازی مبتنی بر سیستم عامل است که چندین واحد مجازی را در فضای کاربر ایجاد می کند که به Containers معروف است. کانتینرها هسته میزبان یکسانی دارند اما از طریق فضاهای نام خصوصی و مکانیسم های کنترل منابع در سطح سیستم عامل از یکدیگر جدا می شوند. مجازی‌سازی مبتنی بر کانتینر در مقایسه با هایپروایزر، سطح متفاوتی از انتزاع را از نظر مجازی‌سازی و جداسازی فراهم می‌کند. هایپروایزرها از سخت افزارهای زیادی استفاده می کنند که منجر به سربار از نظر مجازی سازی سخت افزار و درایورهای دستگاه مجازی می شود. یک سیستم عامل کامل (به عنوان مثال - لینوکس، ویندوز) در بالای این سخت افزار مجازی سازی شده در هر نمونه ماشین مجازی اجرا می شود.

اما در مقابل، کانتینرها جداسازی فرآیندها را در سطح سیستم عامل اجرا می‌کنند، بنابراین از چنین سرباری جلوگیری می‌کنند. این کانتینرها در بالای همان هسته سیستم عامل مشترک ماشین میزبان زیرین اجرا می شوند و یک یا چند فرآیند را می توان در هر ظرف اجرا کرد. در کانتینرها نیازی به تخصیص هیچ RAM از قبل ندارید، در حین ایجاد کانتینرها به صورت پویا تخصیص داده می شود در حالی که در VM ها باید ابتدا حافظه را از قبل تخصیص دهید و سپس ماشین مجازی را ایجاد کنید. Containerization در مقایسه با VM ها از منابع بهتری استفاده می کند و فرآیند راه اندازی کوتاهی دارد. این تکامل بعدی در مجازی سازی است.


داکر چیست؟

داکر یک راه حل کانتینری سازی است که امکان ایجاد سریع و آسان کانتینرها را فراهم می کند. این بر روی ویندوز، سیستم عامل مک و لینوکس اجرا می شود و در Enable هم در توسعه و هم در تولید استفاده می شود. هنگامی که برای اجرای نرم افزار خود استفاده می شود، می توان کانتینرها را در محل ایجاد و ساخت، یا می توانید از کانتینرهای قبلا منتشر شده برای وابستگی های شخص ثالث استفاده کنید، که در رجیستری های کانتینر عمومی میزبانی می شوند.

کانتینر داکر چیست؟

ج:Docker ابزاری است که برای آسان‌تر ساختن، استقرار و اجرای برنامه‌ها با استفاده از کانتینرها طراحی شده است.

شما می توانید Docker Containers را ایجاد کنید، این کانتینرها حاوی تمام باینری ها و کتابخانه های مورد نیاز برای برنامه یا میکروسرویس شما در مورد من هستند. بنابراین برنامه شما در یک کانتینر وجود دارد یا شما برنامه خود را کانتینری کرده اید. اکنون می توان از همان ظرف در محیط Test and Prod استفاده کرد.

ج:Docker Containers یک راه حل سبک برای ماشین های مجازی است و از سیستم عامل میزبان استفاده می کند. بهترین بخش این است که شما نیازی به تخصیص RAM از قبل به Docker Container ندارید، آن را در صورت لزوم و در صورت نیاز مصرف می کند. بنابراین، با Docker Container نیازی نیست نگران هدر رفتن منابع باشم.

منابع

https://www.docker.com/resources/what-container/

https://www.geeksforgeeks.org/containerization-using-docker/