درباره دوره:
به طور خلاصه، داکر یک سرویس مدیریت کانتینر (Container) است. Docker در هر مکانی توسعه، ارسال و اجرا میشود. ایده کامل Docker این است که توسعه دهندگان بهراحتی برنامههای کاربردی را توسعه دهند، آنها را به محفظههایی بفرستند که میتوانند در هر مکان مستقر شوند.
عرضه اولیه Docker در مارس 2013 بود و از آن زمان به کلیدواژه توسعه مدرن جهان، بهویژه در مواجهه با پروژههای مبتنی بر Agile تبدیل شده است.
در آموزش داکر مبانی اولیه Containerization بیان میشود و مباحث ارائه شده، به شما کمک میکند تا به درک کاملی از این مفهوم دست پیدا کنید. سپس با مفاهیم docker آشنا میشوید و یاد میگیرید که چطور از docker برای بهبود عملکرد سیستم و مدیریت نرمافزارها استفاده کنید. Docker، فرایند مجازیسازی و عملکرد بسیار بهتری ازVirtual Machineها دارد و جزء دسته میکرو سرویسها محسوب میشود. با استفاده از Docker میتوان نرمافزار را بدون وابستگی به سیستمعامل اجرا کرد. همچنین، با استفاده از قابلیت swarm، میتوان علاوه بر ایجاد پایداری سیستم، میزان load سرورها را نیز مدیریت کرد. شاید بتوان به صورت خلاصه گفت، با استفاده ازdocker:
Docker ابزاری بسیار مناسبی برای کلیه برنامهنویسان و توسعهدهندگان است چرا که این امکان را میدهد که یک برنامه توسعهیافته را جدای از پلتفرم، در هر محیطی اجرا کنند. کانتینر این امکان را به برنامهنویسان میدهد تا یک برنامه را با تمام ماژولها و وابستگیها ایزوله سازی کرده و در سیستمعاملهای مختلف بدون هیچ مشکلی اجرا کند. بهعنوان یک مثال بارز یک توسعهدهنده PHP را در نظر بگیرید. او احتمالاً باید یک وب سرور را بر روی سیستم خود نصب کند همچنین نیاز به یک پایگاه داده MySQL دارد و اگر پروژه گسترش پیدا کند ممکن است نیاز به نصب چند ماژول اضافی برای PHP و تنظیمات مختلف داشته باشید.
پیشنهاد میشود جهت یادگیری بهتر و موثرتر دورهی آموزش داکر حتما پیش از شروع نرمافزار داکر را را از وبسایت docs.docker.com دانلود نمایید و سپس اقدامات لازم جهت نصب داکر را با توجه به آموزش ارائه شده در فصل اول دوره انجام دهید.
یکی از نکاتی که پیش از شروع آموزش Docker باید به آن توجه کنید، آشنایی نسبی با مفاهیم سیستمعاملهای لینوکس است.
از ویژگیهای مهم دورهی آموزش داکر که موجب به وجود آمدن تمایز در میان سایر دورههای آموزش داکر رایگان و یا آموزش به ازای پرداخت هزینه وجود دارد، میتوان به شیوههای استفاده شده در تدریس اشاره که دروس این دوره با تکیه بر تسلط زیادی که بر مفاهیم دارد، به ارائه مفاهیم به صورت کامل و با بیانی ساده به همراه، استفاده از شکلها، گرافها و اسلاید در جهت تفهیم بهتر و دقیقتر موضوعات و همچینین بیان مثال متنوع برای مباحث مطرح شده میپردازد.
وجود تمرینهای استاندارد و منطق با مباحث تدریس شده در دوره آموزشی، تعامل مدرس با دانشجویان دوره و پروژه پایانی نیز از دیگر مزیت های این دورهی آموزش داکر مکتبخونه میباشد.
در این فصل با ویژگیهای مختلف داکر و مفاهیم اولیه آشنا شده و نحوه نصب داکر را بر روی لینوکس و ویندوز فرامیگیرید برخی از
ویژگیهای مهم داکر عبارتاند از:
DockerHub (داکرهاب) یک سرویس رجیستری در cloud است که به شما امکان میدهد تصاویر Docker را که توسط جوامع دیگر ساخته شدهاند بارگیری کنید. همچنین میتوانید image ساخته شده توسط Docker خود را در مرکز Docker بارگذاری کنید. در این فصل، نحوه بارگیری و استفاده از image Jenkins Docker از هاب داکر را مشاهده خواهیم کرد.
کانتینرها نمونههایی از image Dockerها هستند که میتوانند با استفاده از دستور Docker run اجرا شوند. هدف اصلی داکر اجرای کانتینرها است.
اجرای یک کانتینر
اجرای کانتینرها با دستور Docker run مدیریت میشود. برای اجرای یک کانتینر در حالت تعاملی، ابتدا Docker container را راهاندازی کنید.
در داکر، همه چیز بر اساس image است. image ترکیبی از یک سیستم فایل و پارامترها است.
Docker از جنبههای شبکه مراقبت میکند تا کانتینرها بتوانند با کانتینرهای دیگر و همچنین با Docker Host ارتباط برقرار کنند. اگر ifconfig را روی Docker Host (داکر هاست) انجام دهید، آداپتورDocker Ethernet را مشاهده خواهید کرد. این آداپتور هنگام نصب Docker بر روی Docker Host ایجاد میشود.
Docker دارای چندین درایور ذخیرهسازی است که به آنها امکان میدهد با دستگاههای ذخیرهسازی اساسی کار کنند. جدول زیر درایورهای ذخیرهسازی مختلف را به همراه فناوری مورد استفاده برای درایورهای ذخیرهسازی نشان میدهد.
تکنولوژی درایور ذخیرهسازیOverlayFS overlay or overlay2AUFS aufsBtrfs brtfsDevice Manager devicemanagerVFS vfsZFS zfs
Docker Compose برای اجرای چندین کانتینر بهعنوان یک سرویس واحد استفاده میشود. بهعنوانمثال، فرض کنید شما یک برنامه کاربردی داشته باشید که به NGNIX و MySQL نیاز داشته باشد، میتوانید یک پرونده ایجاد کنید که هر دو محفظه را بهعنوان یک سرویس بدون نیاز به شروع جداگانه شروع کند.
در این فصل، نحوه کار با Docker Compose را خواهیم دید. سپس، همچنین چگونگی دریافت یک سرویس ساده با MySQL و NGNIX را که با استفاده از Docker Compose در حال اجرا است، بررسی خواهیم کرد.
Docker Cloud سرویسی است که توسط Docker ارائه میشود و در آن میتوانید عملیات زیر را انجام دهید:
Nodes: میتوانید Docker Cloud را به ارائهدهندگان ابر موجود خود مانند Azure و AWS متصل کنید تا کانتینرها را در این محیطها بچرخانید.
Cloud Repository:Cloud مکانی را فراهم میکند که بتوانید مخازن خود را در آن ذخیره کنید.Continuous Integration: با Github ارتباط برقرار کنید و یک خط لوله ادغام مداوم ایجاد کنید. Application Deployment: استقرار و مقیاسبندی زیرساختها و کانتینرها.Continuous Deployment: میتواند استقرارها را بهصورت خودکار انجام دهد.
در این فصل مثالهای کاربردی در خصوص تمامی مواردی که تاکنون آموزش داده شد مورد بررسی و اجرا قرار میگیرد.
Kubernetes یک چارچوب تخصصی برای Docker Containerها است که با در اختیار قراردادن Containerها اعمال خاصی را میتواند انجام دهد. بهعنوانمثال، شما میتوانید دو سرویس داشته باشید – یک سرویس شامل nginx و mongoDB و یک سرویس دیگر حاوی nginx و redis. هر سرویس میتواند دارای یک IP یا نقطه سرویس باشد که توسط برنامههای دیگر قابل اتصال باشد. سپس Kubernetes برای مدیریت این سرویسها استفاده میشود.
فصل اول: معرفی و پیش زمینه:
1 – نقشه راه دوره Docker
2 – معرفی Docker و کاربردهای آن
3 – توضیح مفاهیم اولیه و معماری Docker
4 – آزمون معرفی و پیشزمینه
فصل دوم: ایجاد آزمایشگاه لینوکس و Docker:
1 – نصب و راه اندازی سرور لینوکس (Centos)
2 – توضیحاتی در مورد نسخههای مختلف Docker
3 – نصب ماژولهای Docker
فصل سوم: معرفی و بررسی Containerها در Docker:
1 – کار با Docker CLI و ساختار دستورات
2 – اجرای اولین Container و توضیحات Option های آن
3 – فرایند اجرای Container از Client تا Docker Hub
4 – دستورهای Container ها به همراه مثال – بخش اول
5 – دستورهای Container ها به همراه مثال – بخش دوم
6 – بررسی دستورهای inspect و فیلترها بر روی Container ها
7 – مانیتورینگ عملکرد در Container ها
8 – دستورهای Container ها به همراه مثال – بخش سوم
9 – راه اندازی وردپرس با دیتابیس MySQL در Docker
10 – آزمون معرفی و بررسی Container ها در Docker
11 – اجرای wordpress و دیتابیس postgres
فصل چهارم: معرفی و بررسی Imageها در Docker و ساخت Imageها:
1 – مفاهیم اصلی و پایهای Imageها
2 – دستورهای پایه و مدیریت Imageها (انتقال)
3 – انتقال Imageها به صورت آفلاین
4 – ساخت Image خودمان با استفاده از Dockerfile
5 – ساختارهای Dockerfile به همراه مثال
6 – مروری بر دستورات و مبحث Imageها
7 – آزمون معرفی و بررسی Imageها در Docker و ساخت Imageها
8 – پروژه معرفی و بررسی Imageها در Docker و ساخت Imageها
فصل پنجم: بررسی مبحث Networking و DNS در Docker:
1 – توضیح مفاهیم اصلی و پایه networking (چگونه ترافیک جدا می شود؟)
2 – دستورهای Network به همراه مثال
3 – توضیح مفاهیم اصلی و پایه DNS (چرا DNS لازم است؟)
4 – اجرای دو سناریوی کامل Network و DNS
5 – مروری بر دستورات و مبحث Networking و DNS
6 – آزمون بررسی مبحث Networking و DNS در Docker
فصل ششم: ذخیرهسازی و مدیریت دادهها در Docker:
1 – چرا نیاز به مدیریت دادهها داریم؟ (روشهای مدیریت داده)
2 – بررسی روش Volume برای مدیریت دادهها و دستورات
3 – بررسی روش bind Mounts برای مدیریت دادهها و دستورات
4 – مروری بر مبحث مدیریت دادهها و دستورات
5 – آزمون ذخیرهسازی و مدیریت دادهها در Docker
فصل هفتم: معرفی و بررسی Docker Compose (ابزاری برای اجرای چند Container):
1 – معرفی و توضیح ساختار Compose file
2 – ساخت اولین سرویس در Docker Compose (اجرای چند Container در یک سرویس)
3 – توضیحات بیشتری از دستورها و ساختارهای Docker Compose
4 – مروری بر مبحث و دستورات Docker Compose
5 – پروژه معرفی و بررسی Docker Compose (ابزاری برای اجرای چند Container)
فصل هشتم: معرفی Docker Swarm و ورود به دنیای Cloud:
1 – توضیحات در مورد مفاهیم پایهای Swarm
2 – مقدمات swarm cluster با استفاده از سه Node
3 – ایجاد swarm cluster با استفاده از سه Node
4 – تنظیمات مربوط به پورتها و فایروال
5 – دستورات مقدماتی swarm
6 – توضیحات شبکه overlay برای swarm cluster
7 – مروری بر مباحث قسمت اول و دستورات
8 – پیادهسازی سناریوی rolling update در swarm
9 – پیادهسازی سناریو drain برروی node های swarm
10 – دستورهای مرتبط با update سرویسهای swarm
11 – دستورهای مرتبط با rollback سرویسهای swarm
12 – مروری بر مباحث قسمت دوم و دستورات
13 – معرفی stack deploy در حالت swarm
14 – پیاده سازی سناریو در stack و دستورات
15 – مدیریت secret ها در swarm
16 – مروری بر مبحث قسمت سوم و دستورات
17 – آزمون معرفی Docker Swarm و ورود به دنیای Cloud
فصل نهم: مثالهای کاربردی:
1 – پیادهسازی local registry (docker repository) از پایه
2 – راهاندازی Django با دیتابیس postgres با استفاده از docker
فصل دهم: مقدمهای از Kubernetes:
1 – مقدمهای بر kubernetes و مقایسه با docker swarm
پروژه پایانی:
1 – راهاندازی visualizer برای مانیتورینگ container ها بر روی docker swarm