ساخت و اجرای هر برنامه در هرجا، با داکر

ساخت و اجرای هر برنامه در هرجا، با داکر


داکر(Docker)  اولین بار به عنوان یک پروژه جانبی در شرکت دات کلود شروع شد. دات کلود یک شرکت PaaS یا بستر به عنوان سرویس بود که اغلب با Heroku مقایسه می شود. این شرکت بعدها با ساخت داکر و تمرکز بر آن به عنوان پروژه اصلی، اوج گرفت. بعضی از افراد فکر می کنند داکر، ابزار مجازی سازی مانند VMWare یا ویرچوال باکس است. عده ای نیز فکر می کنند داکر ابزار مدیریت ماشین مجازی مانند وگرنت (Vagrant) است؛ ولی در واقع اینگونه نیست. در ادامه، فیسیت، این پلتفرم متن باز را دقیق تر بررسی می کند.


داکر چیست؟
به عبارت ساده و قابل مفهوم، داکر یک پلت فرم متن باز برای توسعه دهندگان و مدیران سیستم هاست که در ساخت، عرضه و اجرای اپلیکیشن های توزیع شده با استفاده از کانتینرها به آنها کمک می کند. در واقع داکر یک روش جدید و متفاوت برای اجرا و توسعه برنامه های نرم افزاری است. کانتینر یا محفظه، به توسعه دهنده اجازه می دهد تا یک اپلیکیشن را با تمام بخش های مورد نیاز مانند کتابخانه ها و دیگر وابستگی ها، بسته بندی کند و به عنوان یک پکیج مجزا بر روی سیستم های دیگر استفاده کند.
داکر دو بخش اصلی دارد: موتور داکر (Docker Engine) که در واقع فایل باینری داکر است که بر روی ماشین محلی یا سرورها اجرا می شود و وظیفه اجرای نرم افزار را برعهده می گیرد. دیگری داکرهاب (Docker Hub) که یک وبسایت و سرویس cloud است و به افراد امکان به اشتراک گذاری عکس های داکر را می دهد.
داکر برای چه کسانی مناسب است؟
داکر ابزاری است که برای سود رساندن به توسعه دهندگان تهیه شده است. توسعه دهندگان با داکر می توانند بر روی نوشتن کد تمرکز کنند، بدون اینکه نگران سیستم نهایی باشند که کد می خواهد بر روی آن اجرا شود. آنها نیز می توانند با استفاده از یکی از هزاران برنامه طراحی شده ای که هم اکنون به عنوان یک کانتینر داکر وجود دارد، کار خود را شروع کنند و یا از آن در بخشی از برنامه خود استفاده کنند.
معماری داکر

Nikkhah166
داکر از معماری کلاینت-سرور استفاده می کند. کلاینت داکر با فرآیند پس زمینه (daemon) داکر که نقش بسیاری در ساخت، اجرا و توزیع کانتینرهای داکر دارد، ارتباط برقرار می کند. هر دو قسمت کلاینت و فرآیند پس زمینه داکر می توانند بر روی یک سیستم اجرا شوند و یا می توان یک کلاینت داکر را به دایمون داکر در نقطه ای دیگر وصل کرد. کلاینت داکر و دایمون آن از طریق سوکت ها و یا یک واسط نرم افزاری RESTful با یکدیگر ارتباط برقرار می کنند.
فرآیند پس زمینه یا دایمون داکر
همانطور که در شکل بالا نشان داده شده است، دایمون داکر بر روی ماشین میزبان اجرا می شود. کاربر به صورت مستقیم با دایمون کار نمی کند و از طریق کلاینت داکر است که می تواند با آن ارتباط برقرار کند.
کلاینت داکر
کلاینت داکر، به صورت فایل باینری، واسط کاربری اصلی برای داکر است. کلاینت، دستورات را از کاربر می گیرد و با دایمون ارتباط برقرار می کند.
برای آشنایی با معماری داخلی داکر نیاز است تا با سه مولفه آشنا شویم:
1-    عکس های داکر (Docker images)
یک عکس داکر، یک فایل فقط خواندنی است. برای مثال، یک عکس می تواند شامل سیستم عامل ابونتو با آپاچی و برنامه وب نصب شده شما باشد. این عکس برای ایجاد کانتینرهای داکر استفاده می شوند. داکر روش راحتی برای ساخت عکس های جدید یا بروزرسانی عکس های موجود فراهم می کند. شما نیز می توانید عکس های داکر را که دیگران ایجاد کرده اند، دانلود کنید. عکس های داکر در واقع مولفه ای برای ساخت (build) داکر به شمار می روند.
2-    رجیستری های داکر (Docker Registries)
رجیستری های داکر، عکس ها را نگهداری می کنند. در واقع اینها، مکان های عمومی یا خصوصی هستند که شما عکس ها را بر روی آنها آپلود و یا دانلود می کنید. رجیستری عمومی داکر توسط داکرهاب فراهم شده است که مجموعه بزرگی از عکس های موجود را برای استفاده شما، ارائه می دهد. رجیستری های داکر، مولفه توزیع شده داکر به شمار می روند.
3-    کانتینرهای داکر (Docker Containers)
کانتینرهای داکر شبیه به دایرکتوری هستند. یک کانتینر داکر هر چیزی را که برای اجرای یک اپلیکیشن نیاز باشد، نگهداری می کنند. هر کانتینر از یک عکس داکر ایجاد می شود. کانتینرهای داکر می توانند اجرا، شروع، متوقف و حذف شوند. هر کانتینر یک اپلیکیشن پلتفرم امن و جدا شده است. کانتینرهای داکر مولفه اجرایی داکر هستند.
داکر چگونه کار می کند؟
همانطور که در بالا توضیح داده شد، داکر از سه مولفه عکس ها، رجیستری و کانتینر تشکیل شده است. این سه با ارتباط با یکدیگر می توانند اپلیکیشنی را توسعه دهند و اجرا کنند. عکس های فقط خواندنی داکر، شامل چندین لایه می شوند. داکر با استفاده از فایل سیستم union این لایه ها را ترکیب کرده و تبدیل به یک عکس می کند. یکی از دلایلی که داکر چنین سبک است، بخاطر وجود همین لایه هاست. زمانی که شما یک عکس را تغییر دهید، مثلا برنامه ای را به ورژن قبلی کانتینر اضافه کنید، بجای اینکه عکسی جایگزین کل عکس قبلی گردد، تنها یک لایه جدید اضافه می شود و بعد هم نیازی نیست که به صورت کامل عکس جدید را دوباره توزیع کرد، بلکه می توان عکس قبلی را بروز کرد. هر عکس داکر نیز از یک عکس پایه شروع می شود. به طور مثال، اگر شما یک عکس پایه ای آپاچی داشته باشید، می توانید از آن به عنوان پایه عکس های اپلیکیشن های وب خود استفاده کنید.
از طرف دیگر رجیستری داکر، جایی برای ذخیره عکس های داکر است. زمانی که یک عکس داکر ساخته شد، می توان آن را در یک رجیستری عمومی مانند داکرهاب قرار داد. با استفاده از کلاینت داکر نیز می توان در بین عکسهای موجود جستجو کرد و آنها را به هاست داکر آورد تا کانتینرهایی از آنها ساخته شوند. عکس داکر به داکر می گوید که این کانتینر چه چیزی را نگهداری می کند، چه فرآیندی را اجرا می کند، چه زمانی عرضه شده است و اطلاعات پیکربندی دیگری که لازم است. عکس داکر، تنها-خواندنی است. زمانی که داکر یک کانتینر را از روی یک عکس اجرا می کند، یک لایه خواندنی-نوشتنی به آن می افزاید و سپس اپلیکیشن اجرا می شود.

وجیهه نیکخواه

وجیهه نیکخواه

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


0 نظر درباره‌ی این پست نوشته شده است.

ثبت نظر