داکر چیه و چرا باید ازش استفاده کنی؟
داکر یه پلتفرم متن بازه که برنامه ها رو توی محیط های ایزوله به اسم کانتینر اجرا میکنه
تصورش کن مثل یه بسته آماده هرچی برنامت نیاز داره (کتابخونه، تنظیمات، نسخه زبان برنامه نویسی) توی این بسته هست این بسته رو هرجا ببری همه چیز عینا کار میکنه
چرا باید از داکر استفاده کنم؟
کدت همراه با هرچی که نیاز داره توی یه بسته قرار میگیره دیگه لازم نیست نگران باشی که فلان کتابخونه روی سرور نصبه یا نه همه چی از قبل توی کانتینر هست
اگه یه روز بخوای از یه سرور به سرور دیگه بری کافیه همون کانتینر رو برداری و اونور بذاری بدون نصب دوباره بدون تنظیمات اضافه بدون دردسر
اگه چندتا پروژه روی یه سرور داری هرکدوم توی کانتینر خودشون اجرا میشن اگه یکی به نسخه قدیمی یه ابزار نیاز داره و اون یکی به نسخه جدید هیچ تداخلی پیش نمیاد هر برنامه توی محیط خودش اجرا میشه
کانتینرها فضای کمی میگیرن و خیلی سریع روشن میشن چند ثانیه بعد از دستور اجرا برنامت آمادست
کی داکر به دردم میخوره؟
چندتا پروژه مختلف داری که هرکدوم نیازهای متفاوت دارن
میخوای بعدا راحت سرور رو عوض کنی
دوست داری محیط توسعه و محیط اجرا دقیقا مثل هم باشن
میخوای منابع سرورت بهینه مصرف بشه
داکر چطور کار میکنه؟
داکر یه سیستم ساده و مرتب داره که از چند بخش تشکیل شده:
Dockerfile
یه فایل متنی سادست که توش مشخص میکنی برنامت چی لازم داره مثلا چه زبانی، چه کتابخونه هایی چه فایل هایی باید کپی بشه و برنامه چطور اجرا بشه
Image
وقتی Dockerfile رو به داکر میدی از روی اون یه Image میسازه Image یه بسته کامله که همه چی توش هست انگار یه عکس فوری از همه تنظیمات و فایل ها و نیازمندی ها این Image رو میتونی نگه داری با بقیه به اشتراک بذاری یا هر وقت خواستی ازش کلی کانتینر بسازی
Container
وقتی Image رو اجرا میکنی تبدیل میشه به Container. Container همون برنامه ای هست که بالا اومده و داره کار میکنه از یه Image میتونی هر چندتا Container که خواستی بساز بدون اینکه چیزی تغییر کنه