استفاده از Docker برای کاربران حرفهای نرم افزار و شبکه ضروری است. ولی واقعا چرا Docker بسیار مهم است؟ امیدواریم در این سلسله پستهای Docker به اهمیت Docker پی ببرید.
داکر خود را اینگونه معرفی میکند:
Build any app, Ship any where, Run any where
سوالی که مهم است و در ابتدا باید به آن پاسخ داد سوال زیر است:
Docker چه تفاوتی با Virtual Machinها دارد؟
سوالی که در ذهن هر شخص قبل از ورود به داکر خطور میکند. یکی از کارهایی که میتوان در Docker انجام داد عبارت است از: نصب سریع یکسیستم عامل، نصب ابزارهای مورد نیاز روی آن و در نهایت تست نرم افزار خود و پس از پایان کار پاک کردن محیط تست.
تفاوت Docker با Virtual Machin را میتوانید در تصویر زیر ببینید:
در تصویر بالا هم در داکر و هم در ماشین مجازی دو عنصور Server، Host Os مشترک است.
در مرحله بعدی در ماشین مجازی یک مجازی ساز مانند Vmware، VirtualBox و در داکر نرم افزار Docker را نصب داریم. تفاوتها از اینجا شروع میشود که در ماشین مجازی باید یک سیستم عامل کامل را نصب و نرم افزارها را روی آن نصب کرد. ولی داکر این مرحله را ساده کرده است و یک نسخه کوچک از سیستم عامل را در خود دارد که بدون نیاز به نصب سیستم عاملهای سنگین و پیچیده میتوان نرم افزارها را روی آن نصب و تست کرد.
هرچند میتوان نسخه کوچکی از نسخههای مختلف سیستم عامل را نیز نصب کرد ولی باز هم بسیار راحت تر از سیستم ماشینهای مجازی است. از مزایای استفاده از داکر نسبت به مجازی ساز میتوان به موارد زیر اشاره کرد:
- ایجاد و حذف بسیار سریع Container ها
- ریستارت و خاموش کردن بسیار سریع
- انتقال پذیری راحت و سبک
- مدیریت منابع و ریسورسها به صورت قدرتمند و متغیر
- و ...
داکر Image:
در داکر Imageها را پس از دریافت اجرا میکنیم. همانطور که در بالا میبینید یک Base Image مانند Debian روی این داکر نصب شده است و روی آن Imageهای دیگر را نصب کرده ایم.
Imageها پس از پایان به حالت اولیه خود باز میگردند چون همانطور از نام آنها مشخص است تنها یک تصویری از پکیج اصلی هستند. برای حذف تغییرات Image میتوان حالت آنها را با دستورات خاصی ذخیره کرد.
Docker Hub چیست؟
یک سرویس اشتراک گذاری تهیه شده توسط شرکت Docker است که شامل مخزنی از imageهای آماده برای Docker است.
این مخزن حاوی دهها هزار برنامه و سیستم عامل است که میتوان به آن imageهایی را هم اضافه کرد.
Docker Container:
/>
در واقع میتوان گفت Container ظرفی است که Imageها را در آن اجرا میکنند. Containerها از روی Imageها ایجاد میشوند و به وظایف خود عمل میکنند. مثلا فرض کنید از یک Centos چند Container میسازیم و در هر کدام تغییرات متفاوتی اعمال میکنیم.