Docker یک بستر کانتینرزاسیون است که برنامه شما و تمام وابستگی های آن را به صورت یک ظرف داکر بسته بندی می کند تا اطمینان حاصل شود داکر چیست که برنامه شما در هر محیطی یکپارچه کار می کند.
کانتینر چیست؟ - Docker Container یک واحد استاندارد ایران هاست است که می تواند در پرواز ایجاد شود تا یک برنامه یا محیط خاص را مستقر کند. این می تواند یک ظرف اوبونتو ، کانتینر CentOs و غیره باشد تا نیاز را از منظر سیستم عامل پر کند. همچنین ، داکر چیست این می تواند یک ظرف کاربردی گرا مانند ظرف CakePHP یا یک ظرف Tomcat-Ubuntu و غیره باشد.
بیایید آن را با یک مثال درک کنیم:
یک شرکت نیاز به توسعه یک برنامه جاوا دارد. برای انجام این کار ، توسعه دهنده محیطی را با سرور tomcat که در آن نصب شده است ، تنظیم می کند. پس از ایجاد برنامه ، باید توسط تستر تست شود. اکنون تستر دوباره برای آزمایش برنامه ، محیط tomcat را از ابتدا تنظیم می کند. داکر چیست پس از انجام آزمایش برنامه ، روی سرور تولید مستقر می شود. باز هم تولید نیاز به محیطی دارد که tomcat روی آن نصب شده باشد تا بتواند میزبان برنامه جاوا باشد. اگر می بینید همان تنظیمات محیط Tomcat سه بار انجام می شود. مواردی وجود دارد که من در زیر با این رویکرد ذکر کرده ام:
1) اتلاف وقت و تلاش است.
2) در تنظیمات مختلف می تواند یک عدم تطابق نسخه وجود داشته باشد ، یعنی توسعه دهنده و تست کننده ممکن است Tomcat 7 را نصب کرده باشند ، داکر چیست اما مدیر سیستم سیستم Tomcat 9 را روی سرور تولید نصب کرده است.
حال ، من به شما نشان می دهم که چگونه می توان از ظرف Docker برای جلوگیری از این ضرر استفاده کرد.
در این حالت ، توسعه دهنده با استفاده از یک تصویر پایه مانند Ubuntu ، که در حال حاضر در Docker Hub وجود دارد ، یک تصویر docker tomcat ایجاد می کند (یک تصویر چیزی نیست جز یک طرح برای قرار دادن چندین کانتینر با همان تنظیمات مشابه). به صورت رایگان موجود است) اکنون این تصویر توسط توسعه دهنده ، تستر و مدیر سیستم برای استقرار محیط tomcat قابل استفاده است. بدین ترتیب این ظرف حل می شود.
امیدوارم که تاکنون با من در مقاله همراه باشید. داکر چیست در صورت شک و تردید بیشتر ، لطفاً نظر خود را ترک کنید ، خوشحالم که به شما کمک می کنم.
با این حال ، اکنون شما فکر می کنید که این کار را می توان با استفاده از ماشین های مجازی نیز انجام داد. با این حال ، اگر شما تصمیم به استفاده از ماشین مجازی گرفتید ، وجود دارد. بیایید برای مقایسه بهتر بین این دو ، مقایسه ای بیندازیم.
VM vs Docker - Container Docker چیست - Edureka
بگذارید از طریق نمودار فوق الذکر را بررسی کنم. داکر چیست ماشین مجازی و Docker Container در سه پارامتر زیر مقایسه می شوند:
اندازه - با استفاده از این پارامتر ، ماشین مجازی و Docker Container را در منابع خود استفاده می کنید.
راه اندازی - این پارامتر بر اساس زمان بوت شدن آنها مقایسه خواهد شد.
ادغام - این پارامتر در توانایی آنها برای ادغام با سایر ابزارها با سهولت مقایسه خواهد کرد.
من ترتیب بالا را که در آن پارامترها ذکر شده است دنبال خواهم کرد. بنابراین پارامتر اول "اندازه" خواهد بود.
اندازه
تصویر زیر چگونگی استفاده از ماشین مجازی و داکر چیست Docker Container از منابع اختصاص یافته به آنها را توضیح می دهد.
ماشین مجازی در مقابل داکر نمونه - چه کانتینر داکر - Edureka
وضعیتی را در تصویر بالا نشان دهید. من یک سیستم میزبان با 16 گیگابایت رم دارم و باید 3 ماشین مجازی را روی آن اجرا کنم. برای اجرای موازی ماشینهای مجازی ، باید RAM خود را بین ماشینهای مجازی تقسیم کنم. فرض کنید من آن را به روش زیر اختصاص داده ام:
6 گیگابایت رم به اولین VM من ،
4 گیگابایت رم به VM دوم من ، و
6 گیگابایت به سومین VM من.
در این حالت ، حتی با استفاده از این موارد ، رم باقیمانده نخواهم ماند.
اولین VM من فقط از 4 گیگابایت رم استفاده می کند داکر چیست 6 گیگابایت اختصاص داده شده - 2 گیگابایت بلا استفاده و مسدود شده
دومین VM من فقط از 3 گیگابایت رم استفاده می کند - 4 گیگابایت اختصاص داده شده - 1 گیگابایت بلا استفاده و مسدود شده
سومین VM من فقط از 2 گیگابایت رم استفاده می کند - 6 گیگابایت اختصاص داده شده - 4 گیگابایت بلا استفاده و مسدود شده
این امر به این دلیل است که وقتی یک تکه حافظه به کاربرد داکر یک ماشین مجازی اختصاص داده می شود ، آنگاه این حافظه مسدود شده و مجدداً اختصاص نمی یابد. من در کل از حافظه رم 7 گیگابایتی (2 GB + 1 GB + 4 GB) هدر می دهم و بنابراین نمی توان ماشین مجازی داکر چیست جدیدی را تنظیم کرد. این یک مسئله اساسی است زیرا رم یک سخت افزار پرهزینه است.
بنابراین ، چگونه می توانم از این مشکل جلوگیری کنم؟
اگر از Docker استفاده کنم ، CPU من دقیقاً مقدار حافظه مورد نیاز Container را اختصاص می دهد.
اولین کانتینر من فقط از 4 گیگابایت رم - 4 GB اختصاص داده شده - 0 گیگابایت استفاده نشده و مسدود شده استفاده می کند
ظرف دوم من فقط از 3 گیگابایت رم استفاده خواهد کرد - 3 گیگابایت اختصاص داده شده - 0 گیگابایت بلا استفاده و مسدود شده
کانتینر سوم من فقط از 2 گیگابایت رم - اختصاص داده شده 2 گیگابایت - 0 گیگابایت استفاده نشده و مسدود شده استفاده می کند
از آنجا که هیچ حافظه اختصاصی (RAM) استفاده نشده وجود دارد ، من با استفاده از Docker Contain 7 GB (16 - 4 - 3 - 2) حافظه ذخیره می کنم. حتی می توانم از رم باقیمانده ظروف اضافی ایجاد کنم و بهره وری خود را افزایش دهم.
بنابراین در اینجا Docker Container به طور واضح بر ماشین مجازی پیروز می شود داکر چیست زیرا من می توانم بنا به نیاز خود از منابع خود به طور موثر استفاده کنم.
استارت آپ
مقایسه راه اندازی VM در مقابل راه اندازی کانتینر - Container Docker چیست - Edureka
وقتی نوبت شروع می شود
Virtual Machine برای بوت شدن زمان زیادی را صرف می کند زیرا سیستم عامل مهمان باید از ابتدا شروع کند ، که در این صورت تمام دودویی ها و کتابخانه ها بارگذاری می شوند. داکر چیست این وقت گیر است و در مواقعی که نیاز به شروع سریع برنامه ها باشد ، بسیار پر هزینه خواهد بود. در مورد Docker Container ، از آنجایی که کانتینر روی سیستم عامل میزبان شما اجرا می شود ، می توانید زمان با ارزش بوت شدن را صرفه جویی کنید. این یک مزیت آشکار نسبت به ماشین مجازی است.
شرایطی را در نظر بگیرید که می خواهم دو نسخه مختلف Ruby را روی سیستم خود نصب کنم. اگر از ماشین مجازی استفاده کنم ، برای اجرای نسخه های مختلف باید 2 ماشین مجازی مختلف راه اندازی کنم. هر یک از این مجموعه ها در حالی که روی سیستم عامل های مختلف میهمان کار می کنند مجموعه ای از باینری ها و کتابخانه ها را دارند. در حالی که اگر من از Docker Container استفاده می کنم ، حتی اگر 2 کانتینر مختلف ایجاد کنم که در آن هر کانتینر دارای مجموعه ای از باینری ها و کتابخانه ها باشد ، من آنها را بر روی سیستم عامل میزبانم اجرا می کنم. اجرای مستقیم آنها بر روی سیستم عامل میزبان من باعث می شود کانتینر Docker سبک و سریع تر شود.
بنابراین Docker Container بر اساس پارامتر Startup دوباره از ماشین مجازی دوباره برنده می شود.