:‫موضوع‬‫چیست‬ ‫داکر‬
‫یعقوبی‬ ‫آقای‬ ‫جناب‬ :‫راهنما‬ ‫استاد‬
‫گشایش‬ ‫علیرضا‬ :‫محقق‬
2
‫صدرا‬ ‫دانشگاه‬
‫بهار‬۹۹۱۱
3
‫داکر‬‫اپلیکیشن‬ ‫ساخت‬ ‫برای‬ ‫افزاری‬ ‫نرم‬ ‫پلتفرم‬ ‫یک‬‫های‬
‫بر‬ ‫مبتنی‬Container‫محیط‬ .‫است‬‫و‬ ‫کوچک‬ ‫اجرایی‬ ‫های‬
‫عامل‬ ‫سیستم‬ ‫هسته‬ ‫از‬ ‫مشترک‬ ‫طور‬ ‫به‬ ‫که‬ ‫سبک‬‫استفاده‬
‫می‬‫کامال‬ ‫و‬ ‫ایزوله‬ ‫محیط‬ ‫یک‬ ‫در‬ ‫حال‬ ‫عین‬ ‫در‬ ‫اما‬ ‫کنند‬
‫مفهوم‬ ‫چند‬ ‫هر‬ .‫دارند‬ ‫قرار‬ ‫هم‬ ‫از‬ ‫جدا‬container
‫مدت‬ ‫از‬ ‫نگهدارنده‬ ‫یا‬‫حوزه‬ ‫در‬ ‫قبل‬ ‫ها‬IT‫بود‬ ‫مطرح‬
‫سال‬ ‫در‬ ‫باز‬ ‫متن‬ ‫پروژه‬ ‫یک‬ ‫عنوان‬ ‫به‬ ‫داکر‬ ‫اما‬۳۱۹۹
‫شد‬ ‫باعث‬ ‫داکر‬ ‫واقع‬ ‫در‬ .‫شد‬ ‫عرضه‬ ‫و‬ ‫معرفی‬
container‫ای‬ ‫تازه‬ ‫جان‬‫محبوب‬ ‫دوباره‬ ‫و‬ ‫بگیرد‬
‫از‬ ‫استفاده‬ ‫سمت‬ ‫به‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ .‫شود‬
Container‫سرویس‬ ‫میکرو‬ ‫و‬‫عنوان‬ ‫به‬ ‫بعدها‬ ‫و‬ ‫رفت‬ ‫ها‬
‫یا‬ ‫ابری‬ ‫توسعه‬evelopmentDnative-loudC‫شناخته‬
‫را‬ ‫شد‬ ‫گفته‬ ‫اینجا‬ ‫تا‬ ‫که‬ ‫مفاهیم‬ ‫از‬ ‫بعضی‬ ‫شاید‬ .‫شد‬
‫این‬ ‫تمام‬ ‫چون‬ ‫نباشید‬ ‫نگران‬ ‫اصال‬ ‫اما‬ ‫نشناسید‬
‫تا‬ ‫را‬ ‫موارد‬‫کرد‬ ‫خواهیم‬ ‫مرور‬ ‫هم‬ ‫با‬ ‫مطلب‬ ‫انتهای‬
‫چه‬ ‫و‬ ‫چیست‬ ‫داکر‬ ‫که‬ ‫شد‬ ‫خواهیم‬ ‫متوجه‬ ‫پایان‬ ‫در‬ ‫و‬
‫دارد‬ ‫کاربردهایی‬.
‫از‬ ‫منظور‬Container‫چیست؟‬
4
‫سیستم‬ ‫که‬ ‫اهدافی‬ ‫از‬ ‫یکی‬‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫جدید‬ ‫های‬
‫می‬ ‫دنبال‬‫برنامه‬ ‫که‬ ‫است‬ ‫این‬ ،‫کنند‬،‫محیط‬ ‫یک‬ ‫در‬ ‫ها‬
‫هم‬ ‫از‬ ‫جدا‬ ‫و‬ ‫ایزوله‬ ‫صورت‬ ‫به‬ ‫اما‬.‫شوند‬ ‫نگهداری‬
‫تاثیر‬ ‫یکدیگر‬ ‫روی‬ ‫بر‬ ‫آنها‬ ‫فعالیت‬ ‫ترتیب‬ ‫این‬ ‫به‬
‫می‬ ‫کار‬ ‫هم‬ ‫از‬ ‫جدا‬ ‫و‬ ‫نداشته‬‫این‬ ‫اجرای‬ ‫البته‬ .‫کنند‬
‫کتابخانه‬ ،‫ها‬ ‫پکیج‬ ‫از‬ ‫استفاده‬ ‫خاطر‬ ‫به‬ ‫فرآیند‬‫ها‬
‫کامپونتت‬ ‫دیگر‬ ‫و‬‫می‬ ‫افزاری‬ ‫نرم‬ ‫های‬‫پیچیده‬ ‫تواند‬
‫شود‬.
‫راه‬ ‫از‬ ‫یکی‬‫استفاده‬ ‫تکنولوژی‬ ‫این‬ ‫کردن‬ ‫پیاده‬ ‫های‬
‫از‬‫مجازی‬ ‫ماشین‬(Virtual Machine)‫که‬ ‫است‬
‫برنامه‬‫از‬ ‫جدا‬ ‫کامال‬ ‫اما‬ ‫افزار‬ ‫سخت‬ ‫یک‬ ‫روی‬ ‫را‬ ‫ها‬
‫می‬ ‫نگه‬ ‫هم‬‫کامپوننت‬ ‫حالت‬ ‫این‬ ‫در‬ ‫پس‬ .‫دارد‬‫ما‬ ‫های‬
‫استفاده‬ ‫برای‬ ‫رقابت‬ ‫و‬ ‫نداشته‬ ‫هم‬ ‫با‬ ‫خاصی‬ ‫تداخل‬
‫می‬ ‫حداقل‬ ‫به‬ ‫هم‬ ‫افزاری‬ ‫سخت‬ ‫منابع‬ ‫از‬‫اما‬ .‫رسد‬
‫ماشین‬‫او‬ .‫دارند‬ ‫هم‬ ‫مشکالتی‬ ‫مجازی‬ ‫های‬‫همه‬ ‫از‬ ‫ل‬
‫افزار‬ ‫سخت‬ ‫و‬ ‫بوده‬ ‫سنگینی‬ ‫افزارهای‬ ‫نرم‬ ‫اینکه‬
‫می‬ ‫قدرتمندی‬ ‫نسبتا‬‫برنامه‬ ‫هر‬ ‫همینطور‬ .‫خواهند‬
‫است‬ ‫ممکن‬ ‫که‬ ‫دارد‬ ‫جداگانه‬ ‫عامل‬ ‫سیستم‬ ‫به‬ ‫نیاز‬
‫عامل‬ ‫سیستم‬ ‫این‬‫حجم‬ ‫ها‬‫داشته‬ ‫گیگابایتی‬ ‫چند‬ ‫های‬
‫بروزرسانی‬ ‫و‬ ‫نگهداری‬ ‫است‬ ‫ممکن‬ ‫اینکه‬ ‫و‬ .‫باشند‬
‫شود‬ ‫دشوار‬ ‫آنها‬.
‫ع‬ ‫بررسی‬‫میق‬‫تر‬Container‫مثال‬ ‫یک‬ ‫همراه‬ ‫به‬
5
‫مقابل‬ ‫در‬Container‫می‬ ‫که‬ ‫دارد‬ ‫قرار‬‫تواند‬
‫ماشین‬ ‫برای‬ ‫مناسبی‬ ‫جایگزین‬‫باشد‬ ‫مجازی‬ ‫های‬.
Container‫محیط‬‫هسته‬ ‫و‬ ‫کرده‬ ‫جدا‬ ‫را‬ ‫اجرایی‬ ‫های‬
‫می‬ ‫اشتراک‬ ‫به‬ ‫را‬ ‫عامل‬ ‫سیستم‬‫آنها‬ ‫حجم‬ .‫گذارد‬
‫ماشین‬ ‫به‬ ‫نسبت‬ ‫و‬ ‫بوده‬ ‫مگابایت‬ ‫به‬ ‫معموال‬‫مجازی‬ ‫های‬
‫از‬‫می‬ ‫استفاده‬ ‫کمتری‬ ‫منابع‬‫برخالف‬ ‫همینطور‬ .‫کند‬
‫ماشین‬‫نسبتا‬ ‫زمان‬ ‫به‬ ‫نیاز‬ ‫اجرا‬ ‫برای‬ ‫که‬ ‫مجازی‬ ‫های‬
،‫دارند‬ ‫زیادی‬Container‫می‬ ‫اجرا‬ ‫بالفاصله‬ ‫ها‬‫شوند‬.
‫که‬ ‫زمانی‬Container‫مقایسه‬ ‫مجازی‬ ‫ماشین‬ ‫با‬ ‫را‬
‫می‬‫اما‬ .‫هستیم‬ ‫حساب‬ ‫طرف‬ ‫ساز‬ ‫شبیه‬ ‫یک‬ ‫با‬ ‫یعنی‬ ‫کنیم‬
‫سا‬ ‫شبیه‬ ‫را‬ ‫چیزی‬ ‫چه‬ ‫دقیقا‬‫می‬ ‫زی‬‫درک‬ ‫برای‬ ‫کنیم؟‬
.‫کنیم‬ ‫استفاده‬ ‫مثال‬ ‫یک‬ ‫از‬ ‫است‬ ‫بهتر‬ ‫موضوع‬ ‫بهتر‬
‫ناهار‬ ‫و‬ ‫هستید‬ ‫کار‬ ‫به‬ ‫مشغول‬ ‫شرکتی‬ ‫در‬ ‫کنید‬ ‫فرض‬
‫داخل‬ ‫را‬ ‫آن‬ ‫و‬ ‫کرده‬ ‫درست‬ ‫خانه‬ ‫در‬ ‫روز‬ ‫هر‬ ‫را‬ ‫خود‬
‫می‬ ‫شرکت‬ ‫به‬ ‫ظرف‬ ‫یک‬.‫بفرمایید‬ ‫میل‬ ‫آنجا‬ ‫تا‬ ‫برید‬
‫کنید‬ ‫غذا‬ ‫پختن‬ ‫به‬ ‫شروع‬ ‫شرکت‬ ‫داخل‬ ‫نیست‬ ‫الزم‬ ‫دیگر‬
‫احتم‬ ‫چون‬‫می‬ ‫شما‬ ‫از‬ ‫را‬ ‫زیادی‬ ‫زمان‬ ‫اال‬‫کار‬ .‫گیرد‬
Container‫شما‬ .‫است‬ ‫این‬ ‫به‬ ‫شبیه‬ ‫حدودی‬ ‫تا‬ ‫هم‬
‫داخل‬ )‫(غذا‬ ‫را‬ ‫خود‬ ‫پروژه‬Container ()‫غذا‬ ‫ظرف‬
‫(مثال‬ ‫داشتید‬ ‫دوست‬ ‫که‬ ‫کجا‬ ‫هر‬ ‫را‬ ‫آن‬ ‫و‬ ‫داده‬ ‫قرار‬
‫می‬ )‫شرکت‬‫برید‬.
Docker‫چیست؟‬
6
‫می‬ ‫اجازه‬ ‫که‬ ‫است‬ ‫باز‬ ‫متن‬ ‫پروژه‬ ‫یک‬ ‫داکر‬‫دهد‬
Container‫یا‬‫برنامه‬‫بر‬ ‫مبتنی‬ ‫های‬Container
‫لینوکس‬ ‫برای‬ ‫کار‬ ‫شروع‬ ‫در‬ ‫داکر‬ ‫اینکه‬ ‫با‬ .‫بسازید‬
‫و‬ ‫ویندوز‬ ‫در‬ ‫خوبی‬ ‫به‬ ‫امروزه‬ ‫اما‬ ‫شد‬ ‫ساخته‬MacOS
‫می‬ ‫اجرا‬ ‫هم‬‫داکر‬ ‫با‬ ‫برنامه‬ ‫یک‬ ‫ساخت‬ ‫برای‬ .‫شود‬
‫کامپوننت‬ ‫از‬ ‫باید‬‫حاال‬ .‫کنیم‬ ‫استفاده‬ ‫مختلفی‬ ‫های‬
‫این‬ ‫سراغ‬ ‫است‬ ‫بهتر‬ ‫داکر‬ ‫مفهوم‬ ‫بهتر‬ ‫درک‬ ‫برای‬
‫کامپوننت‬‫آن‬ ‫و‬ ‫رفته‬ ‫ها‬‫کنیم‬ ‫بررسی‬ ‫را‬ ‫ها‬:
Dockerfile
‫هر‬Container‫کار‬ ‫به‬ ‫شروع‬ ‫داکر‬ ‫فایل‬ ‫یک‬ ‫با‬ ‫داکر‬
‫می‬‫کند‬. Dockerfile‫آن‬ ‫داخل‬ ‫که‬ ‫بوده‬ ‫متنی‬ ‫فایل‬ ‫یک‬
‫دستورالعمل‬ ‫فهم‬ ‫قابل‬ ‫و‬ ‫ساده‬ ‫سینتکس‬ ‫یک‬ ‫با‬‫های‬
‫ساخت‬Docker Image‫جلوتر‬ ‫(کمی‬ ‫است‬ ‫شده‬ ‫داده‬ ‫قرار‬
‫برر‬ ‫را‬ ‫مفهوم‬ ‫این‬‫خواهیم‬ ‫سی‬‫اطالعات‬ ‫فایل‬ ‫این‬ )‫کرد‬
‫اندازی‬ ‫راه‬ ‫برای‬ ‫که‬ ‫گیرد‬ ‫برمی‬ ‫در‬ ‫را‬ ‫مهمی‬ ‫بسیار‬
‫در‬ .‫است‬ ‫ضروری‬ ‫آنها‬ ‫از‬ ‫استفاده‬ ‫داکر‬
‫واقع‬Dockerfile‫می‬ ‫مشخص‬‫پشت‬ ‫که‬ ‫کند‬Container‫ما‬
‫زبان‬ ‫چه‬ ‫از‬ ‫همینطور‬ ،‫بگیرد‬ ‫قرار‬ ‫عاملی‬ ‫سیستم‬ ‫چه‬
‫پورت‬ ،‫محلی‬ ‫متغیرهای‬ ،‫ها‬‫غیره‬ ‫یا‬ ‫شبکه‬ ‫های‬
‫استفاده‬‫مهم‬ ‫و‬ .‫شود‬‫کند‬ ‫مشخص‬ ‫اینکه‬ ‫همه‬ ‫از‬ ‫تر‬
7
Container‫قرار‬ ‫شد‬ ‫اجرا‬ ‫واقعا‬ ‫اینکه‬ ‫از‬ ‫بعد‬ ‫ما‬
‫دهد‬ ‫انجام‬ ‫کاری‬ ‫چه‬ ‫است‬.
Docker image
‫نوشتن‬ ‫کار‬ ‫که‬ ‫زمانی‬ ‫واقع‬ ‫در‬Dockerfile‫تمام‬ ‫را‬
‫اسم‬ ‫به‬ ‫قابلیت‬ ‫یک‬ ،‫کردید‬Docker Build‫را‬
‫می‬ ‫فراخوانی‬‫یک‬ ‫دارد‬ ‫وظیفه‬ ‫که‬ ‫کنید‬Image‫اساس‬ ‫بر‬
‫محتویات‬Dockerfile‫بسازد‬ ‫شما‬. Dockerfile‫شامل‬
‫یک‬ ‫ساختن‬ ‫برای‬ ‫دستورالعمل‬ ‫سری‬ ‫یک‬Image‫در‬ ،‫است‬
‫که‬ ‫حالی‬Docker Image‫که‬ ‫است‬ ‫حمل‬ ‫قابل‬ ‫فایل‬ ‫یک‬
‫می‬ ‫مشخص‬ ‫که‬ ‫بوده‬ ‫دستورالعمل‬ ‫سری‬ ‫یک‬ ‫شامل‬‫کند‬
Container‫کامپوننت‬ ‫کدام‬‫اجرا‬ ‫را‬ ‫افزاری‬ ‫نرم‬ ‫های‬
‫شو‬ ‫اجرا‬ ‫آنها‬ ‫چطور‬ ‫اینکه‬ ‫و‬ ‫کند‬‫احتمال‬ ‫به‬ .‫ند‬
‫زیاد‬Dockerfile‫از‬ ‫را‬ ‫فایل‬ ‫تعدادی‬ ‫بخواهد‬
‫مخزن‬‫مختلف‬ ‫های‬(Repository)‫اینجا‬ ‫و‬ ‫کند‬ ‫دانلود‬
‫نسخه‬ ‫کدام‬ ‫که‬ ‫کنید‬ ‫مشخص‬ ‫واضح‬ ‫طور‬ ‫به‬ ‫باید‬‫ها‬
‫همینطور‬ .‫شوند‬ ‫دریافت‬Image‫استاتیک‬ ‫شده‬ ‫ساخته‬
‫می‬‫نیازی‬ ‫و‬ ‫بوده‬ ‫کافی‬ ‫آن‬ ‫ساختن‬ ‫بار‬ ‫یک‬ ‫یعنی‬ ،‫باشد‬
‫ندارید‬ ‫آن‬ ‫تغییر‬ ‫به‬‫آنها‬ ‫اسم‬ ‫از‬ ‫که‬ ‫همانطور‬ .
‫می‬،‫بزنید‬ ‫حدس‬ ‫توانید‬Image‫سیستم‬ ‫از‬ ‫تصویر‬ ‫یک‬
‫می‬ ‫اصلی‬ ‫عامل‬‫باشد‬.
Docker run
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
‫پروژه‬ ‫یا‬ ‫داکر‬ ‫شرکت‬ ‫منظورش‬ ‫و‬ ‫کرده‬ ‫صحبت‬ ‫داکر‬
‫درباره‬ ‫دارد‬ ‫یعنی‬ ،‫نباشد‬ ‫داکر‬Docker Engine‫حرف‬
‫می‬‫نسخه‬ ‫دو‬ ‫در‬ ‫موتور‬ ‫این‬ .‫زند‬Enterprise‫یا‬
Community‫می‬ ‫عرضه‬‫نسخه‬ .‫شود‬Community‫طور‬ ‫به‬
‫حالی‬ ‫در‬ ‫است‬ ‫استفاده‬ ‫قابل‬ ‫رایگان‬ ‫کامال‬ ‫و‬ ‫باز‬ ‫متن‬
‫نسخه‬ ‫که‬Enterprise‫قابلیت‬ ‫سری‬ ‫یک‬‫داشته‬ ‫اضافه‬ ‫های‬
‫هر‬ ‫برای‬ ‫ساالنه‬ ‫و‬Node‫به‬ ‫نزدیک‬0011‫هزینه‬ ‫دالر‬
‫دارد‬.
‫چطو‬ ‫داکر‬‫می‬ ‫کار‬ ‫ر‬‫کند؟‬
‫و‬ ‫رسیده‬ ‫بخش‬ ‫این‬ ‫به‬ ‫تا‬ ‫گفتیم‬ ‫را‬ ‫نکات‬ ‫این‬ ‫تمام‬
‫می‬ ‫کار‬ ‫چطور‬ ‫و‬ ‫چیست‬ ‫داکر‬ ‫بفهمیم‬‫را‬ ‫داکر‬ .‫کند‬
‫می‬‫به‬ ‫نه‬ ‫اما‬ ،‫بگیریم‬ ‫نظر‬ ‫در‬ ‫ساز‬ ‫مجازی‬ ‫یک‬ ‫توانیم‬
‫ماشین‬ ‫که‬ ‫شکلی‬‫می‬ ‫کار‬ ‫مجازی‬ ‫های‬‫سرویس‬ ‫این‬ .‫کنند‬
‫می‬ ‫کمک‬ ‫شما‬ ‫به‬‫تقسیم‬ ‫بخش‬ ‫چند‬ ‫به‬ ‫را‬ ‫محیط‬ ‫یک‬ ‫کند‬
‫در‬ ‫و‬ ‫و‬ ‫کرده‬.‫کنید‬ ‫اجرا‬ ‫مجزا‬ ‫برنامه‬ ‫یک‬ ‫بخش‬ ‫هر‬
‫به‬ ‫شبیه‬ ‫را‬ ‫داکر‬ ‫لحظه‬ ‫یک‬ ‫موضوع‬ ‫بهتر‬ ‫درک‬ ‫برای‬
‫می‬ ،‫بگیرید‬ ‫نظر‬ ‫در‬ ‫مجازی‬ ‫ماشین‬‫ماشین‬ ‫که‬ ‫دانیم‬‫های‬
‫با‬ ‫مجازی‬Hypervisor‫انجام‬ ‫را‬ ‫سازی‬ ‫شبیه‬ ‫عملیات‬
‫می‬‫مستقیم‬ ‫ما‬ ‫و‬ ‫شده‬ ‫حذف‬ ‫الیه‬ ‫این‬ ‫داکر‬ ‫در‬ ‫اما‬ ‫دهند‬
‫می‬ ‫کار‬ ‫عامل‬ ‫سیستم‬ ‫هسته‬ ‫با‬‫ای‬ .‫کنیم‬‫بازدهی‬ ‫کار‬ ‫ن‬
‫می‬ ‫باال‬ ‫بسیار‬ ‫را‬ ‫سیستم‬‫برد‬.
‫شبیه‬ ‫یک‬ ‫داخل‬ ‫را‬ ‫عامل‬ ‫سیستم‬ ‫چند‬ ‫اینکه‬ ‫جای‬ ‫به‬ ‫ما‬
‫می‬ ‫نصب‬ ‫را‬ ‫داکر‬ ‫بار‬ ‫یک‬ ‫کنیم‬ ‫نصب‬ ‫ساز‬‫این‬ .‫کنیم‬
‫نظر‬ ‫در‬ ‫عادی‬ ‫افزار‬ ‫نرم‬ ‫یک‬ ‫نصب‬ ‫به‬ ‫شبیه‬ ‫را‬ ‫فرآیند‬
‫محیط‬ ‫داکر‬ ‫بعد‬ .‫بگیرید‬‫نام‬ ‫به‬ ‫مستقلی‬ ‫های‬
10
Container‫می‬ ‫ایجاد‬‫هر‬ ‫که‬ ‫کند‬Container‫می‬‫تواند‬
‫بسته‬ ‫شامل‬‫حاال‬ .‫باشد‬ ‫مختلفی‬ ‫افزاری‬ ‫نرم‬ ‫های‬
‫می‬‫داکر‬ ‫داخل‬ ‫توانید‬Container‫ایجاد‬ ‫مختلفی‬ ‫های‬
‫پروژه‬ ‫و‬ ‫کنید‬‫هر‬ ‫روی‬ ‫مستقل‬ ‫طور‬ ‫به‬ ‫را‬ ‫خود‬ ‫های‬
‫نمایید‬ ‫اجرا‬ ‫کدام‬.
‫گیری‬ ‫نتیجه‬
‫ساخت‬ ‫و‬ ‫طراحی‬ ‫برای‬ ‫سورس‬ ‫اوپن‬ ‫ابزار‬ ‫یک‬ ‫داکر‬
‫برنامه‬‫کمک‬ ‫به‬ ‫ها‬Container‫است‬. Container‫به‬
‫می‬ ‫کمک‬ ‫نویس‬ ‫برنامه‬‫تمام‬ ‫با‬ ‫را‬ ‫خود‬ ‫پروژه‬ ‫که‬ ‫کند‬
‫وابستگی‬ ،‫ها‬ ‫کتابخانه‬ ‫(مثل‬ ‫دارد‬ ‫که‬ ‫هایی‬ ‫بخش‬‫و‬ ‫ها‬
‫این‬ ‫لطف‬ ‫به‬ .‫دربیاورد‬ ‫پکیج‬ ‫یک‬ ‫صورت‬ ‫به‬ )‫غیره‬
‫او‬ ‫برنامه‬ ‫که‬ ‫است‬ ‫راحت‬ ‫خیالش‬ ‫نویس‬ ‫برنامه‬ ،‫تکنیک‬
‫می‬‫سیستم‬ ‫در‬ ‫تواند‬‫تنظیمات‬ ‫به‬ ‫نیاز‬ ‫بدون‬ ‫دیگر‬ ‫های‬
‫ا‬ ‫یا‬ ‫خاص‬‫شبیه‬ ‫را‬ ‫داکر‬ .‫شود‬ ‫اجرا‬ ‫جانبی‬ ‫بزارهای‬
‫که‬ ‫تفاوت‬ ‫این‬ ‫با‬ ،‫بگیرید‬ ‫نظر‬ ‫در‬ ‫مجازی‬ ‫ماشین‬ ‫به‬
‫دارد‬ ‫باالتری‬ ‫بسیار‬ ‫بازدهی‬.
:‫منابع‬
11
7learn.com
Docker.com
Geeksforgeeks.com

Docker

  • 1.
    :‫موضوع‬‫چیست‬ ‫داکر‬ ‫یعقوبی‬ ‫آقای‬‫جناب‬ :‫راهنما‬ ‫استاد‬ ‫گشایش‬ ‫علیرضا‬ :‫محقق‬
  • 2.
  • 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‫به‬ ‫می‬ ‫کمک‬ ‫نویس‬ ‫برنامه‬‫تمام‬ ‫با‬ ‫را‬ ‫خود‬ ‫پروژه‬ ‫که‬ ‫کند‬ ‫وابستگی‬ ،‫ها‬ ‫کتابخانه‬ ‫(مثل‬ ‫دارد‬ ‫که‬ ‫هایی‬ ‫بخش‬‫و‬ ‫ها‬ ‫این‬ ‫لطف‬ ‫به‬ .‫دربیاورد‬ ‫پکیج‬ ‫یک‬ ‫صورت‬ ‫به‬ )‫غیره‬ ‫او‬ ‫برنامه‬ ‫که‬ ‫است‬ ‫راحت‬ ‫خیالش‬ ‫نویس‬ ‫برنامه‬ ،‫تکنیک‬ ‫می‬‫سیستم‬ ‫در‬ ‫تواند‬‫تنظیمات‬ ‫به‬ ‫نیاز‬ ‫بدون‬ ‫دیگر‬ ‫های‬ ‫ا‬ ‫یا‬ ‫خاص‬‫شبیه‬ ‫را‬ ‫داکر‬ .‫شود‬ ‫اجرا‬ ‫جانبی‬ ‫بزارهای‬ ‫که‬ ‫تفاوت‬ ‫این‬ ‫با‬ ،‫بگیرید‬ ‫نظر‬ ‫در‬ ‫مجازی‬ ‫ماشین‬ ‫به‬ ‫دارد‬ ‫باالتری‬ ‫بسیار‬ ‫بازدهی‬. :‫منابع‬
  • 11.