#  داکر چیست و چه کاربردی دارد؟

داکر یک پلتفرم نرم افزاری است که به شما امکان می دهد تا برنامه ها را به سرعت بسازید، آزمایش کنید و اجرا کنید. داکر برنامه‌ها را در واحدهای استانداردی به نام کانتینر بسته‌بندی کرده و همه چیزهایی را که برنامه برای اجرا نیاز دارد از جمله کتابخانه‌ها، ابزارهای سیستم و کد را درون خود نگهداری میکند. با استفاده از Docker، می توانید به سرعت برنامه ها را در هر محیطی مستقر و مقیاس بندی کنید و مطمئن باشید که کد شما به درستی اجرا  خواهد شد. داکر، زیرمجموعه ای از پروژه Moby، یک چارچوب نرم افزاری برای ساخت، اجرا و مدیریت کانتینرها بر روی سرورها و فضای ابری است.

 

در گذشته وقتی می خواستید یک برنامه وب را اجرا کنید، یک سرور می خریدید، لینوکس را نصب می کردید، یک LAMP راه اندازی می کردید و برنامه را اجرا می کردید. اگر برنامه شما محبوب می‌شد، با راه‌اندازی سرور دوم و یک load balancer مطمئن می‌شدید که برنامه در اثر ترافیک زیاد خراب نمی‌شود.

 

اما، زمان تغییر کرده است. به جای تمرکز بر روی سرورهای منفرد، اینترنت بر روی آرایه‌هایی از سرورهای وابسته ساخته شده است که معمولاً «ابر» نامیده می‌شود. به لطف نوآوری هایی مانند namespace و cgroups لینوکس، مفهوم سرور را می توان از محدودیت های سخت افزاری حذف کرد و در عوض، اساساً به یک نرم افزار تبدیل کرد. این سرورهای مبتنی بر نرم‌افزار را کانتینر می‌نامند.

 

 

 #  کانتینر داکر چیست؟

هدف اصلی توسعه نرم افزار جدا نگه داشتن برنامه ها از یکدیگر در یک سرور یا کلاستر است. به لطف کتابخانه‌ها، پکیج‌ها و سایر مؤلفه‌های نرم‌افزاری مورد نیاز برای اجرای آنها، دستیابی به این امر دشوار است. یکی از راه حل های این مشکل، کانتینرها هستند که محیط های اجرای برنامه را از یکدیگر جدا نگه می دارند، اما هسته اصلی سیستم عامل را به اشتراک می گذارند. کانتینرها همه مزایای ماشین های مجازی را ارائه می دهند، از جمله جداسازی برنامه، یکبار مصرف بودن و مقیاس پذیری مقرون به صرفه.

 

container یک قالب بسته بندی است که تمام کدها و وابستگی های یک برنامه کاربردی را در قالبی استاندارد بسته بندی می کند که به آن اجازه می دهد تا به سرعت و با اطمینان در محیط های محاسباتی اجرا شود. کانتینر داکر یک کانتینر سبک وزن، مستقل و قابل اجرا است که شامل همه چیزهایی است که برای اجرای یک برنامه لازم است، از جمله کتابخانه ها، ابزارهای سیستم و کد.

 

خدمات داکر و کانتینر به سرعت مورد استقبال قرار گرفته و در چند سال گذشته موفقیت چشمگیری داشته است. از یک فناوری متن باز تقریباً ناشناخته و نسبتاً فنی در سال 2013، به یک محیط زمان اجرا استاندارد تبدیل شده است که اکنون به طور رسمی برای بسیاری از محصولات سازمانی Oracle پشتیبانی می شود.

 

 

 #  چرا باید از داکر استفاده کنیم؟

یکی از ویژگی‌های مهم در مورد تکنولوژی‌های منبع باز این است که میتوانید آزادانه انتخاب کنید که از چه فناوری برای انجام یک کار استفاده کنید. موتور داکر می تواند برای توسعه دهندگانی مفید باشد که به محیطی سبک و تمیز برای آزمایش نیاز دارند، اما نمیخواهند کارهای پیچیده انجام دهند. اگر Docker در سیستم شما در دسترس است و همه اطرافیان شما با زنجیره ابزار Docker آشنا هستند، Docker Community Edition راهی عالی برای شروع کار با کانتینرها است.

 

  • کانتینرهای داکر را می توان در هر دیتاسنتر، دسکتاپ و محیط ابری بدون هیچ تغییری اجرا کرد.
  • به طور خودکار یک کانتینر بر اساس سورس کد برنامه ایجاد می کند.
  • کانتینرهای داکر را میتوان نسخه بندی کرد و بین نسخه‌ها حرکت کرد.
  • داکر یک انتخاب مناسب و مقرون به صرفه برای ماشین های مجازی مبتنی بر Hypervisor ارائه می دهد و همچنین برای محیط های با تراکم بالا و برای استقرارهای کوچک و متوسط عالی است.

 

 

 #  داکر از چه مواردی تشکیل شده است؟

بیایید اکنون به طور مفصل در مورد عبارات مهمی که به ایجاد برنامه‌های کانتینری داکر کمک می‌کنند، مانند Daemon، کلاینت و اشیاء Docker صحبت کنیم:

 

 

 +  داکر daemon

داکر Daemon درخواست های API را نظارت می کند و اشیاء داکر مانند کانتینرها، ایمیج‌ ها، والیوم‌ ها و نتورک ها را کنترل می کند. برای مدیریت سرویس‌های داکر، دیمون می‌تواند با دیمون‌های دیگر نیز ارتباط برقرار کند.

 

 +  داکر کلاینت

داکر کلاینت اصلی ترین راه ارتباطی بین کاربران داکر با داکر است. کلاینت دستورات (docker API) استفاده شده توسط کاربران مانند docker run را به داکر ارسال می کند. برای مدیریت خدمات داکر، داکر کلاینت می توانند با بیش از یک دیمون ارتباط برقرار کنند.

 

 +  داکر آبجکت

ایمیج‌های داکر، کانتینرها، نتورک ها، والیوم ها، پلاگین ها و غیره آبجکت‌های داکر هستند.

 

 +  داکر compose

Docker Compose برای ساده سازی فرآیند توسعه و آزمایش برنامه های کاربردی چند کانتینری استفاده می شود. یک فایل YAML ایجاد می کند و تعیین می کند که کدام خدمات در برنامه گنجانده شود.

 

 +  داکر swarm

Docker شامل ابزار orchestration خود به نام Swarm است. این ابزار به شما امکان می دهد چندین کانتینر مستقر در چندین ماشین را مدیریت کنید. مزیت اصلی استفاده از آن ارائه سطح بالایی از در دسترس بودن برای برنامه ها است.



0

intro

11:16

رایگان

1

what is docker

8:19

رایگان

2

image

20:19

رایگان

3

basic commands

13:42

5

image layers

21:7

6

restart policy

17:46

7

Dockerfile

19:53

9

port forwarding

11:58

10

load, save

2:43

12

volume

14:54

13

network

7:31

14

docker-compose

10:30

15

dangling

15:44

16

sharing volumes

5:11

دوره های پیشنهادی

دوره آموزش امنیت در وب
دوره آموزش امنیت در وب
تکمیل ضبط
امیرحسین بیگدلو
دوره آموزش GraphQL در پایتون
دوره آموزش GraphQL در پایتون
تکمیل ضبط
امیرحسین بیگدلو
دوره آموزش ساخت Forum با فلسک
دوره آموزش ساخت Forum با فلسک
تکمیل ضبط
امیرحسین بیگدلو



ارسال نظر


جواد

1 سال قبل پاسخ به نظر

چقدر عالی توضیح میدید
با آرزوی بهترینها براتون

ارسال نظر



Zohre

1 سال قبل پاسخ به نظر

با تشکر از آموزش خوبتون.
من یه سوال داشتم از خدمتتون
من یه پروژه ای رو از گیتهاب پیدا کردم و به کمک آموزشتون تونستم در داکر اجراش کنم. الان دیتایی که توسط این پروژه تولید میشه رو میخوام مستقیما بنویسم روی دیتابیسی که روی سرور قرار داره. نمیدونم این کانکشن رو چطور برقرار کنم، اگر آموزش مرتبطی با این موضوع دارید ممنون میشم راهنمایی بفرمائید.
(فرض کنید من به این پروژه عدد 6 رو دادم و در خروجی یک لیست از 0 تا 6 رو چاپ میکنه. من میخوام این لیست بره توی دیتابیس نوشته بشه)

ارسال نظر



امیرحسین بیگدلو

1 سال قبل

سلام
این قضیه زیاد ربطی به داکر نداره. شما آدرس دیتابیس رو میدین به پروژه و متصل میشید بهش. نکته خاصی نداره

زهره

1 سال قبل پاسخ به نظر

It was excellent, thank you.

ارسال نظر



باب

2 سال قبل پاسخ به نظر

درود ، واقعا کاشکی 2 سال پیش سایتت رو پیدا کرده بودم ، خیلی ساده گفتی همه چیو ، عالی
2تا سوالم داشتم
1- تو پروژه واقعی این داکر چجوریه داستانش ، یعنی داکر رو مثلا روی سرور نصب میکنیم که با nginx کار کنه یا nginx هم روی کاتینر نصب میکنیم بعد با داکر منابع سرور رو کم و زیاد میکنیم ؟ میشه این مورد رو یکم باز کنی ، گیج شدم

2- توی دوره نهایی جنگو یه جلسه نوشتی داکرایز کردن پروژه ، خواستم ببینم این داکرایز کردن ، یعنی مثلا میایم چیزای مورد نیاز اون پروژه که مثلا python - django-postrgres هست رو روی کانتینر نصب میکنیم ؟
یا دارم اشتباه میزنم :D

اون دوره رو هنوز شروع نکردم ، خواستم یه دیدی داشته باشم از الان

ممنون

ارسال نظر



امیرحسین بیگدلو

2 سال قبل

سلام
۱. همه چیز رو داخل کانتینرها نصب میکنیم.
۲. میایم همه چیز رو داخل کانتینرها نصب و اجرا میکنیم.


باب

2 سال قبل

عالی عالی
پس داکر رو روی سرور نصب میکنیم همه چیز رو رو کانتینر نصب میکنیم حتی nginx رو

مرسی 3>

MORTEZA

3 سال قبل پاسخ به نظر

برنامه نویس بدبخت 4:25 :)
خیییلی خوب و گویا بود

ارسال نظر



امیرحسین بیگدلو

3 سال قبل

خوشحالم که راضی بودی

فرهاد

3 سال قبل پاسخ به نظر

سلام، تشکر از این آموزش
در این ویدئو جمله ای در قسمت ردیس گفتین که بنظرم صحیح نیست چون: اینکه مثلا چیزی مانند ردیس اگر در داکرهاب وجود نداشته باشد دیگر نمی توان آن را در داکر اجرا کرد اشتباه است.

ارسال نظر



امیرحسین بیگدلو

3 سال قبل

سلام
بله درست میفرمایید. اینجوری گفتم که تازه‌کارها بتونن مطالب رو درک کنن وگرنه در ویدیوهای بعدی به عنوان مثال Dockerfile پایتون رو نشون دادم و گفتم که چطورمیشه از وبسایت پایتون فایل نصبش رو دانلود و روی لینوکس نصب کرد.

مونگارد