Docker
- 3. 3
داکراپلیکیشن ساخت برای افزاری نرم پلتفرم یکهای
بر مبتنیContainerمحیط .استو کوچک اجرایی های
عامل سیستم هسته از مشترک طور به که سبکاستفاده
میکامال و ایزوله محیط یک در حال عین در اما کنند
مفهوم چند هر .دارند قرار هم از جداcontainer
مدت از نگهدارنده یاحوزه در قبل هاITبود مطرح
سال در باز متن پروژه یک عنوان به داکر اما۳۱۹۹
شد باعث داکر واقع در .شد عرضه و معرفی
containerای تازه جانمحبوب دوباره و بگیرد
از استفاده سمت به افزار نرم توسعه .شود
Containerسرویس میکرو وعنوان به بعدها و رفت ها
یا ابری توسعهevelopmentDnative-loudCشناخته
را شد گفته اینجا تا که مفاهیم از بعضی شاید .شد
این تمام چون نباشید نگران اصال اما نشناسید
تا را مواردکرد خواهیم مرور هم با مطلب انتهای
چه و چیست داکر که شد خواهیم متوجه پایان در و
دارد کاربردهایی.
از منظورContainerچیست؟
- 4. 4
سیستم که اهدافی از یکیافزار نرم توسعه جدید های
می دنبالبرنامه که است این ،کنند،محیط یک در ها
هم از جدا و ایزوله صورت به اما.شوند نگهداری
تاثیر یکدیگر روی بر آنها فعالیت ترتیب این به
می کار هم از جدا و نداشتهاین اجرای البته .کنند
کتابخانه ،ها پکیج از استفاده خاطر به فرآیندها
کامپونتت دیگر ومی افزاری نرم هایپیچیده تواند
شود.
راه از یکیاستفاده تکنولوژی این کردن پیاده های
ازمجازی ماشین(Virtual Machine)که است
برنامهاز جدا کامال اما افزار سخت یک روی را ها
می نگه همکامپوننت حالت این در پس .داردما های
استفاده برای رقابت و نداشته هم با خاصی تداخل
می حداقل به هم افزاری سخت منابع ازاما .رسد
ماشیناو .دارند هم مشکالتی مجازی هایهمه از ل
افزار سخت و بوده سنگینی افزارهای نرم اینکه
می قدرتمندی نسبتابرنامه هر همینطور .خواهند
است ممکن که دارد جداگانه عامل سیستم به نیاز
عامل سیستم اینحجم هاداشته گیگابایتی چند های
بروزرسانی و نگهداری است ممکن اینکه و .باشند
شود دشوار آنها.
ع بررسیمیقترContainerمثال یک همراه به
- 5. 5
مقابل درContainerمی که دارد قرارتواند
ماشین برای مناسبی جایگزینباشد مجازی های.
Containerمحیطهسته و کرده جدا را اجرایی های
می اشتراک به را عامل سیستمآنها حجم .گذارد
ماشین به نسبت و بوده مگابایت به معموالمجازی های
ازمی استفاده کمتری منابعبرخالف همینطور .کند
ماشیننسبتا زمان به نیاز اجرا برای که مجازی های
،دارند زیادیContainerمی اجرا بالفاصله هاشوند.
که زمانیContainerمقایسه مجازی ماشین با را
میاما .هستیم حساب طرف ساز شبیه یک با یعنی کنیم
سا شبیه را چیزی چه دقیقامی زیدرک برای کنیم؟
.کنیم استفاده مثال یک از است بهتر موضوع بهتر
ناهار و هستید کار به مشغول شرکتی در کنید فرض
داخل را آن و کرده درست خانه در روز هر را خود
می شرکت به ظرف یک.بفرمایید میل آنجا تا برید
کنید غذا پختن به شروع شرکت داخل نیست الزم دیگر
احتم چونمی شما از را زیادی زمان االکار .گیرد
Containerشما .است این به شبیه حدودی تا هم
داخل )(غذا را خود پروژهContainer ()غذا ظرف
(مثال داشتید دوست که کجا هر را آن و داده قرار
می )شرکتبرید.
Dockerچیست؟
- 6. 6
می اجازه که است باز متن پروژه یک داکردهد
Containerیابرنامهبر مبتنی هایContainer
لینوکس برای کار شروع در داکر اینکه با .بسازید
و ویندوز در خوبی به امروزه اما شد ساختهMacOS
می اجرا همداکر با برنامه یک ساخت برای .شود
کامپوننت از بایدحاال .کنیم استفاده مختلفی های
این سراغ است بهتر داکر مفهوم بهتر درک برای
کامپوننتآن و رفته هاکنیم بررسی را ها:
Dockerfile
هرContainerکار به شروع داکر فایل یک با داکر
میکند. Dockerfileآن داخل که بوده متنی فایل یک
دستورالعمل فهم قابل و ساده سینتکس یک باهای
ساختDocker Imageجلوتر (کمی است شده داده قرار
برر را مفهوم اینخواهیم سیاطالعات فایل این )کرد
اندازی راه برای که گیرد برمی در را مهمی بسیار
در .است ضروری آنها از استفاده داکر
واقعDockerfileمی مشخصپشت که کندContainerما
زبان چه از همینطور ،بگیرد قرار عاملی سیستم چه
پورت ،محلی متغیرهای ،هاغیره یا شبکه های
استفادهمهم و .شودکند مشخص اینکه همه از تر
- 7. 7
Containerقرار شد اجرا واقعا اینکه از بعد ما
دهد انجام کاری چه است.
Docker image
نوشتن کار که زمانی واقع درDockerfileتمام را
اسم به قابلیت یک ،کردیدDocker Buildرا
می فراخوانییک دارد وظیفه که کنیدImageاساس بر
محتویاتDockerfileبسازد شما. Dockerfileشامل
یک ساختن برای دستورالعمل سری یکImageدر ،است
که حالیDocker Imageکه است حمل قابل فایل یک
می مشخص که بوده دستورالعمل سری یک شاملکند
Containerکامپوننت کداماجرا را افزاری نرم های
شو اجرا آنها چطور اینکه و کنداحتمال به .ند
زیادDockerfileاز را فایل تعدادی بخواهد
مخزنمختلف های(Repository)اینجا و کند دانلود
نسخه کدام که کنید مشخص واضح طور به بایدها
همینطور .شوند دریافتImageاستاتیک شده ساخته
مینیازی و بوده کافی آن ساختن بار یک یعنی ،باشد
ندارید آن تغییر بهآنها اسم از که همانطور .
می،بزنید حدس توانیدImageسیستم از تصویر یک
می اصلی عاملباشد.
Docker run
- 8. 8
قابلیتDocker runکه است دستور یک واقع در
Containerمی اندازی راه رامی .کندهر که دانیم
Containerیکinstanceاز نمونه یاImageو است
ماهیتContainerص بهمی موقتی ورتبا اما .باشد
می حال اینمتوقف را آنها توان(Stop)راه یا
مجدد اندازی(Restart)هر .کردImageمیتواند
زیادی تعدادContainerکه زمانی (تا باشد داشته
باشند داشته فردی به منحصر نام کدام هر)
Docker Hub
ساخت چند هرContainerاما ،است راحتی کار ها
هر برای ندارد لزومیImageاول ازContainer
بسازید. Docker Hubمخزن یکSaasاشتراک به برای
مدیریت و گذاریContainerآنجا در .است ها
میتوانیدImageصورت به معموال که داکر رسمی های
مردم عموم همینطور .کنید پیدا را هستند باز متن
پروژه هماین به را خود هایRepositoryاضافه
میکنند.
Docker Engine
می حساب به داکر اصلی هسته و متفکر مغزیک .آید
تکنولوژیکالینت/سرورکهContainerو ساخته را ها
می اجرا را آنهادرباره کسی اگر واقع در .کند
- 9. 9
پروژه یا داکر شرکت منظورش و کرده صحبت داکر
درباره دارد یعنی ،نباشد داکرDocker Engineحرف
مینسخه دو در موتور این .زندEnterpriseیا
Communityمی عرضهنسخه .شودCommunityطور به
حالی در است استفاده قابل رایگان کامال و باز متن
نسخه کهEnterpriseقابلیت سری یکداشته اضافه های
هر برای ساالنه وNodeبه نزدیک0011هزینه دالر
دارد.
چطو داکرمی کار رکند؟
و رسیده بخش این به تا گفتیم را نکات این تمام
می کار چطور و چیست داکر بفهمیمرا داکر .کند
میبه نه اما ،بگیریم نظر در ساز مجازی یک توانیم
ماشین که شکلیمی کار مجازی هایسرویس این .کنند
می کمک شما بهتقسیم بخش چند به را محیط یک کند
در و و کرده.کنید اجرا مجزا برنامه یک بخش هر
به شبیه را داکر لحظه یک موضوع بهتر درک برای
می ،بگیرید نظر در مجازی ماشینماشین که دانیمهای
با مجازیHypervisorانجام را سازی شبیه عملیات
میمستقیم ما و شده حذف الیه این داکر در اما دهند
می کار عامل سیستم هسته باای .کنیمبازدهی کار ن
می باال بسیار را سیستمبرد.
شبیه یک داخل را عامل سیستم چند اینکه جای به ما
می نصب را داکر بار یک کنیم نصب سازاین .کنیم
نظر در عادی افزار نرم یک نصب به شبیه را فرآیند
محیط داکر بعد .بگیریدنام به مستقلی های
- 10. 10
Containerمی ایجادهر که کندContainerمیتواند
بسته شاملحاال .باشد مختلفی افزاری نرم های
میداکر داخل توانیدContainerایجاد مختلفی های
پروژه و کنیدهر روی مستقل طور به را خود های
نمایید اجرا کدام.
گیری نتیجه
ساخت و طراحی برای سورس اوپن ابزار یک داکر
برنامهکمک به هاContainerاست. Containerبه
می کمک نویس برنامهتمام با را خود پروژه که کند
وابستگی ،ها کتابخانه (مثل دارد که هایی بخشو ها
این لطف به .دربیاورد پکیج یک صورت به )غیره
او برنامه که است راحت خیالش نویس برنامه ،تکنیک
میسیستم در تواندتنظیمات به نیاز بدون دیگر های
ا یا خاصشبیه را داکر .شود اجرا جانبی بزارهای
که تفاوت این با ،بگیرید نظر در مجازی ماشین به
دارد باالتری بسیار بازدهی.
:منابع