
اولین نسخه داکر در تاریخ March 20, 2013 توسط فردی به نام سالامان هایکز (Solomon Hykes) راهاندازی شد و در سال 2014 نسخه 1.0 آن ریلیز شد، هدف کلی داکر کنترل کانتینر ها هست و خب بعد اینکه داکر به محبوبیت رسید خیلی از شرکت ها اپ های تحت سرورشون رو به جای VM(ماشین های مجازی) ها روی بستر داکر ران کردن، حالا اصلا اینا واسه چی هست؟ خب به طور کلی بخوایم صحبت کنیم ماشین های مجازی میان یک سیستم رو شبیهسازی میکنن و به زبان ساده با استفاده از توان سخت افزار موجود در سیستم شما یک سیستم دیگه رو شبیهسازی میکنن که خب توانش طبیعتا به توان سیستم خودتون بستگی داره(به عنوان مثال یکی از معروفترین اونها VMWare هست) اما کاری که داکر میکنه شبیه سازی کل سیستم نیست اون میاد از کرنل خود شما استفاده میکنه در واقع شما یک سیستم عامل رو شبیهسازی نمیکنین بلکه میاین اون اپی که دارین رو در یک محیط نسبتا ایزوله ران میکنین که هر چیزی که نیاز داره رو درون اون کانتینر خودش داره (که نمیتونه یا نمیخواد از سیستم شما بگیره) و بقیه رو از سیستم عامل پایه استفاده میکنه و خب باعث میشه میزان درگیر شدن سیپییو و رم و ... خیلی کاهش پیدا کنه چون شما یک سیستم عامل کامل رو شبیهسازی نمیکنین

ولی حالا کانتینر چیه؟ به تعبیر ایرانسرور میشه گفت:
داکر امکانی را فراهم آورده است که پروسهها و نرمافزارها به صورت مجزا در محیط کاملا ایزولهای بر روی کرنل لینوکس راهاندازی شوند؛ به این محیط و بستۀ ایزوله، کانتینر (Container) میگویند.
و به تعبیر کرلیبرکت میشه گفت:
کانتینر به یک برنامه نویس کمک که پروژه خودش رو با همه قسمت ها و لایبرری به صورت یک پکیج در بیاره. با استفاده از داکر، میتونیم مطمئن باشیم که پروژه داخل سیستم های دیگه بدون نیاز به عوض کردن تنظیمات یا نصب کردن ابزار اضافه، اجرا میشه.
که خب به عنوان مثال میشه به anbox اشاره کرد( اگه باهاش آشنایی ندارید یک شبیهساز اندروید واسه گنو/لینوکس هست که از کرنل سیستم خود شما استفاده میکنه تا اپ های اندروید رو نصب و راهاندازی کنه ) اَنباکس هم کاربردی تقریبا به داکر داره، میاد از سیستم خود شما استفاده میکنه تا یک محیط رو واسه ران کردن اندروید محیا کنه.
به طور کلی داکر از چندین بخش تشکیل میشه:
خب اولی که daemonش هست(سادهاش میشه چیزی که باعث میشه داکر داخل بکگراند ران بشه که خب تو گنو/لینوکس با systemd کنترل میشه) و دسترسی api داکر و کامندلاینش رو بر عهده داره بعد از اون containterd هست که مسئول دانلود کردن کانتینر ها هست و همچنین runc که کارش ایجاد namespace ها و control groups هست که خب واردشون نمیشیم در این مقاله.
اما از کجا میتونیم کانتینر هایی که دیگران درست کردن رو دریافت کنیم؟
خب خود کمپانی داکر یک مکانی به اسم Docker Hub درست کرده(معمولا کلمه هاب واسه یک چیزی هست که از اون مشخصه زیاد درونش پیدا میشه که خب میشه به GitHub اشاره کرد که داخلش گیت ها آپلود میشن)

و خب این مقاله یک مقدمه و توضیح کوچیک بود در رابطه با docker در ادامه آموزش کار با داکر رو خواهیم داشت پس همراه ما باشید...
نویسنده: محمد میرآب
اینستاگرام: curlybracket_ir
تلگرام: @curlybracket