Docker چیست؟
داکر یک پلتفرم نرم افزاری برای ساخت اپلیکیشنهای مبتنی بر Container است. محیطهای اجرایی کوچک و سبک که به طور مشترک از هسته سیستم عامل استفاده میکنند اما در عین حال در یک محیط ایزوله و کاملا جدا از هم قرار دارند. هر چند مفهوم container یا نگهدارنده از مدتها قبل در حوزه IT مطرح بود اما داکر به عنوان یک پروژه متن باز در سال ۲۰۱۳ معرفی و عرضه شد. در واقع داکر باعث شد container جان تازه ای بگیرد و دوباره محبوب شود. توسعه نرم افزار به سمت استفاده از Container و میکرو سرویسها رفت و بعدها به عنوان توسعه ابری یا Cloud-native Development شناخته شد. شاید بعضی از مفاهیم که تا اینجا گفته شد را نشناسید اما اصلا نگران نباشید چوندر ادامه یکی از بهترین آموزش های مرتبط با Docker را با عنوان Learning Docker از شرکت Lynda را برای شما به اشتراک خواهیم گذاشت .
منظور از Container چیست؟
یکی از اهدافی که سیستمهای جدید توسعه نرم افزار دنبال میکنند، این است که برنامهها در یک محیط، اما به صورت ایزوله و جدا از هم نگهداری شوند. به این ترتیب فعالیت آنها بر روی یکدیگر تاثیر نداشته و جدا از هم کار میکنند. البته اجرای این فرآیند به خاطر استفاده از پکیج ها، کتابخانهها و دیگر کامپونتتهای نرم افزاری میتواند پیچیده شود.
یکی از راههای پیاده کردن این تکنولوژی استفاده از ماشین مجازی (Virtual Machine) است که برنامهها را روی یک سخت افزار اما کاملا جدا از هم نگه میدارد. پس در این حالت کامپوننتهای ما تداخل خاصی با هم نداشته و رقابت برای استفاده از منابع سخت افزاری هم به حداقل میرسد. اما ماشینهای مجازی مشکلاتی هم دارند. اول از همه اینکه نرم افزارهای سنگینی بوده و سخت افزار نسبتا قدرتمندی میخواهند. همینطور هر برنامه نیاز به سیستم عامل جداگانه دارد که ممکن است این سیستم عاملها حجمهای چند گیگابایتی داشته باشند. و اینکه ممکن است نگهداری و بروزرسانی آنها دشوار شود.
Docker به درد چه کسانی می خورد ؟
Docker ابزاری است که هم به درد برنامه نویس ها می خورد و هم به درد مدیرهای شبکه و به همین خاطر هم برخی اوقات به نام DevOps از آن یاد می شود که ترکیبی از دو اسم Developer و Operations است. برای برنامه نویس ها Docker به این معنا است که فقط روی کد نویسی خودتان تمرکز کنید و دغدغه اینکه کد شما قرار است بر روی چه سیستم عاملی با چه نیازمندی هایی نصب شود را نداشته باشید اینکار را Docker برای شما انجام می دهد. از طرفی هزاران برنامه و نرم افزار متنوع وجود دارند که برای کار کردن در محیط Docker طراحی شده اند و شما می توانید به راحتی از آنها در مجموعه خودتان در قالب یک Docker Container استفاده کنید. از طرفی در محیط های عملیاتی Docker این امکان را به همه می دهد که چندین برنامه را همزمان بر روی یک سیستم فیزیکی نصب و اجرا کنند و اینها هیچکدام با یکدیگر کوچکترین ارتباطی نداشته باشند و بصورت کاملا ایزوله در مجموعه فعالیت کنند.
Arthur Ulfeldt در بسته آموزشی Learning Docker به بحث حول مفاهیم زیر خواهد پرداخت.
Topics include:
Installing Docker on Mac, Windows, and Linux
Understanding the Docker flow
Running processes in containers
Managing, networking, and linking containers
Working with Docker images, volumes, and registries
Building Dockerfiles
Managing networking and namespaces with Docker
Building entire systems with Docker
پاسخ دهید