از Pista Academy حمایت کنید
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در جلسه چهارم دوره آموزش Docker و Kubernetes، مفاهیم اصلی داکر مانند ایمیج و کانتنر به طور کامل توضیح داده شده است. ایمیج به عنوان یک تمپلت برای ایجاد کانتنر معرفی شده و کانتنر به عنوان یک واحد نرمافزاری اجرا شده تعریف شده است. همچنین، نحوه استفاده از ایمیجهای موجود در داکر هاب و گیتهاب و ساخت ایمیج خودکار با استفاده از Dockerfile بررسی شده است. در ادامه، یک پروژه واقعی با استفاده از نود جس به عنوان مثال ارائه شده است و نصب و ران کردن آن با استفاده از نود و ابزارهای مرتبط توضیح داده شده است. در بخش بعدی، نحوه تعویض پورت در کانتنر و اجرا کردن یک اپلیکیشن با استفاده از تصویر کانتنری به طور کامل بررسی شده است.
نکات کلیدی
ایمیج در داکر به عنوان یک تمپلت برای ایجاد کانتنر عمل میکند و شامل کد و ابزارهای لازم برای اجرا است.
کانتنر یک واحد نرمافزاری اجرا شده است که از یک ایمیج ساخته میشود و به صورت جداگانه از سیستم اصلی ایزوله است.
تعویض پورت در کانتنر و دسترسی ادمین برای پر پایین نیاز است.
ایمیج کانتنری اپلیکیشن برای استفاده بعدی ساخته میشود.
متن ویدیو
متن زمانبندیشده این جلسه برای مرور، جستجو و دسترسی سریعتر.
سلام عرض میکنم خدمت دوستان عزیز. بریم سراغ ادامه بحث داکر. ما جلسه قبلی دو سه
جلسه گذشته مقدماتشو بهتون گفتیم. بریم
سراغ اصل داستان. خب اول بریم راجع به
مفهومی صحبت کنیم به نام داکر و ایمج و
کانتنر. ببینیم مثلاً این د تا مفهوم چه
معنی دارن برای ما.
خب اینا حالا یه دوره دیگهست. خب ما د تا
مفهوم داریم توی داکت یکی بهش میگن ایمیج
البته جلسه گذشته یه ذره راجع بهش صحبت کردیم
ایمیج بچهها توی داکر مفهومی شبیه بلو پرینت داره یعنی تمپل لت نسخه اولی حالا
هرچی بخوایم ترجمهش بکنیم خب
و که شامل
کد و ابزارهای مورد نیاز اجرا شدن اون کد
هستن
مثلاً ما وقتی میگیم ایمیج نود یعنی هر
چیزی که لازمه برای اینکه یک سیستم درقل
یک نود بیاد بالا یه نود جس بیاد بالا
مثلاً میگیم ایمج پی اچ پی به هم شنین
کانتنر یه در حقیقت واحد نرمافزاریه
واحد نرمافزاری اجرا شوندهست حالا
فارسیشو بخوام بگم بهتون یعنی میاد از اون
ایمیجه ساخته میشه و بعد مثلاً شما رانش
میکنید و باهاش کار میکنید مثلاً شما
فرض کنید یه ایمیج پی اچ پی دارید یه
ایمیج نود دارید فرض کنید میاید ازش یه
نسخه میگیرید به اسم کانتینر اونو ران
میکنید و میتونید داخلش اپلیکیشنی مثلاً
نودو رام بکنید.
پس به نوعی میشه گفتش که ایمج حکم تمپلتو
داره
تمپلت
یا بلوپر پرینتم بهش میگم
خود کانتینر یه واحد نرمافزاریه که اجرا میشه
رانینگ
که در حقیقت داره از همین ایمیجه مشتق میشه یعنی از این ایمیجه ساخته میشه و ران
میشه
ما از یک ایمج بچهها میتونیم هر چند تا کانتینری که بخوایم بسازیم
یعنی محدودیتی نداریم. هر چند تا یه نسخه
اولیهست دیگه. شما از روی نسخه اولیه
میتونید تعداد بیشماری نسخه بسازی. خیلی
محدودیتی
نداره.
خب حالا ما ایمیجا رو به چه صورت میتونیم
بچهها بسازیم؟ یعنی نحوه ساختن ایمیجا
چهجوریه؟
نحوه ساختن یا پیدا کردن ایمیجا به دو
شکله بچهها.
من اینجا که خط بکشم
یه حالت اینه که برید از ایمیجهایی که قبلاً ساخته شده و وجود داره استفاده
بکنید.
درست نمیشن پس یه حالت اینه که برید از اون چیزایی که
قبلاً وجود داره استفاده بکنید
خب اینا ایمیجایی که از قبل ساخته شده و
وجود داره کجاست که ما بریم ازش استفاده
کنیم مثلاً داکر هاپ که جلسه قبلم اشاره
کردیم بهش تبی گیتهاب میمونه
داکر ها یعنی اونجا یه معدنی از ایمیجای
آماده است که شما میتونید ازش استفاده
کنید.
اینجاست. لاگین میکنی بعد سرچ میکنی مثلاً میگی
مثلا من دنبال ایمیج نودم میخوام استفاده
کنم.
تایپ ایمج
نوت مثلا این ایمیج نده نحوه استفادهشم خیلی
ساده است هم میتونید اینجا دکمه رانو
بزنید مستقیم بره توی را داکر دسکتاپتون
اجرا بشه
هم اینکه کامندم داره که
قبلاً این سمت راست میذاشت عوضش کرد
حالا اونم بهتون نشون میدم براد خب پس پس این ایمیج آماده نوده که شما
میتونید ازش استفاده بکنید. بریم یه
دقیقاً ایمیج نودو بیاریم باهاش یه ذره
کار بکنیم استفاده کنیم ببینیم چهجوریه.
خب من وی اس کدو باز میکنم.
این وی اس کد میرم تو محیط ترمینال میخوام یه دونه کانتینر از ایمیج نود
بسازم استفاده کنم. برای ساختن کانتنر
میگیم داکر ران نوت
این کانتنر میسازه از ایمیج نوت حالا
نکته اینجا هست این ایمیج نوت دارن از کجا
میاره
به صورت پیشفرض اول میره رو سیستم خودت
میگرده لوکالی میگرده اگر ایمیج نودو تو
قبلاً دانلود کرده باشی و سیستمت داشته
باشی میره از اون استفاده میکنی اما اگر
نداشته باشی میره دانلود میکنه. اینت رو
میزنم.
خب خط اول نگاه کنید میگه انبل تو فد ایمج
نود لیتست لوکالی یعنی نتونستم لوکالی
پیدا کنم. چیکار میکنه؟ داره دانلود
میکنه میره از گیتهاب ببخشید از داکر هاب
الان ایمیج نودو دانلود میکنه و بعد یه
کانتینر ازش میسازه که تو باهاش کار
بکنی. اجازه بدید کارش تموم بشه.
خب تقریباً دیگه تموم شد.
اوکی خب حالا میخوام لیست کانتینرا رو ببینم
ببینم چیا دارم الان کانتنر میگم داکر پیs
دش ا حالا ما جلوتر بریم بچهها این
کامندا رو بیشتر میبینیما
الان داره به من میگه که من یه دونه
کانتینر دارم این آیدیشه
از ایمیج نوت ساخته شده ۱۶ ثانیه قبل این
اتفاق افتاده الان بسته شده و اینم اسمشه.
اسمم به صورت رندم خودش میذاره. میتونید
شماهم اسم بذارید. حالا ما جلوتر اینا رو
یاد میگیریم.
خب حالا من میخوام از این نو استفاده
کنم. یه محیط اینتراکتیو به شما میده. خب
من یه کانتینر دیگه بسازم.
داکر
ران این دفعه میگم یه محیط اینتراکتیو بهم
بده که بتونم باهاش کار کنم. نوت بچهها
الان یه کانتینر جدید میسازیم اون قبلی
نیست دیگه.
نگاه کنید الان من یه محیط اینتراکتیو نود
دارم مثلاً اگه مثلاً یک به اضافه ی جواب
میده بهم هر دستور نودی الان اینجا بنویسم
جواب میده
یعنی من اومدم نودو تو یه کانتینری آوردم
بالا دارم باهاش کار میکنم
حالا یه نکتهای
الان
چه ورژنی از نودو داره کار میکنه؟ ۲۵ ۲ ۱
درسته؟ اینو تو ذهنتون داشته باشید. من دو
بار کنترول سی میزنم از نود کانتین میام
بیرون. الان کانتنره استاپ شد. الان رو
سیستم خودمم.
میزنم نود دش دش ورژن. میخوام ببینم چه ورژنی از نود سیستم خودم نصبه.
یه نکته جالبی اینجا وجود داره بچهها. اینجا که داشتم با نوت کار میکردم داشتم
با اون ورژن ۲۵ کار میکردم. اما ورژن کی
سیستم خودم ۲۲ه پس نشون میده که این نودی
که من اینجا کار کردم کاملاً ایزوله بوده
از نود سیستم خودم این نود کانتینر بوده
داشتم یه کانتینررو ران کردم فقط واستم
این مفهومو بدونید که من وقتی کانتینر راد
میکنم
عملاً این ایزولهست از سیستم خودم من رو
سیستم خودم ورژن ۲۲ رو داشتم ولی اون داشت
با ورژن ۲۵ کانتینر کار میکرد
پس این میشه راهی که من میتونم
در حقیقت
یه کانتنر بسازم از ایمیجای آماده توی
داکرهاد یه دش پی اس ا دوباره بزنیم شد د
تا کانتینر اولیو که استاپ کردم دومی رم
که استاپ کردم دیگه دو بار دستور داکر ران
زدم
هر دفعه هم میبینید بچهها یه اسم جدید
براشون میذاره
خب اما
راه بعدی برای اینکه شما بخواید ایمیج بسازید چیه؟ اینکه خودتون ایمیجو بسازید.
شما خودتون همین امکان رو دارید که خودتون
ایمج رو بسازید. حالا جلوتر میبینیم
چهجوری. پس راه دوم اینه که من بیام
بسازم
ایمیج خودمو.
کاستوم ایمج یعنی یه ایمج بسازم با نیازمندیهای
خودم حالا هرش کاری که میخوام انجام بدم
که اینم الان میبینیم چهجوریه
چهجوری این کارو میکردیم میومدیم یه داکر
فایل مینوشتیم بعد از روی اون داکر فایلا
میگفتیم برو ایمیج بساز
که یکی دو جلسه قبل اینو با همدیگه دیدیم
خب حالا بریم یه دونه پروژه اگزمپل نود ج
اس با همدیگه بیاریم بالار و باهاش کار
بکنیم. بذارید من یه لینک ریپازیتوری
بهتون بدم که این پروژه رو دریافت کنید.
خب از این آدرس
میتونید در حقیقت
اون پروژه اولیه نو جس که میخوایم الان باهاش
کار کنیمو میتونید دریافت بکنید. حالا
فایلای دیگهای هم که تو این دوره داریم
رو بچهها تو همین ریپازیتوری من میذارم.
خب اینو بذارید من یه چیز بکنم این باید
باز کنم
ایناش بچهها
خب بریم سراغ
ادامه بحثمون من وی اس کدو باز کنم این فایل پروژهایه که ما با نوت جس الان
داریم اصلاً بچهها دغدغه از شش نوت جس
بلد نیستیدا خیلی مسئلهای نیست
اینجا یه فایل نوجسه که چیکار میکنه؟ من اگر به دامین اصلی این اپلیکیشن ریکوست
بدم مثلاً فرض کنید چه میدونم googl.com
کام مثلاً خب این جوابو بهم برمیگردونه
یه فایل اچتی ام
یه دونه اند پوینت دیگه هم هست یه آدرس
دیگه اسور دش گول اگه به این ریکوست پست
بزنم این کارو انجام میده همین اندازه
بدونید کفایت میکنه و روپورت ۸۰م این دق
سرورش میاد بالا خب یه سری فایلم اینجا
داریم فایل سی اسهم اینجا داریم که کاری
نداریم یه فایل پکیج جیسونم داریم که
نیازمندیهای این اپلیکیشن اینجاست میگه
من اکسپرس و بادی پارسل لازم دارم برای
اینکه بخوام این اپلیکیشنو بیارم بالا خب
ما میخوایم این اپلیکیشنو با کانتینر
بیاریم بالا ولی قبلش من این اپلیکیشنو با
نود جی اس میارم بالا به صورت عادی و بعد
بریم ببینیم که با کانتینر چهجوری باید
این کارو بکنیم برای اینکه شما بخواید با
نود جس بیاید بالا اولین کاری که باید
بکنید این که نود جسو رو سیستمتون نصب
داشته باشید من فرض میکنم که نصب دارم م
الان استپ دوم چیه؟ باید برم نیازمندیاشو
نصب بکنم میام میگم ام پی اینستال
میره نیازمندیاشو نصب میکنم
و یه فایلی الان اینجا اضافه میشه
یه نود ماژول اضافه شد یه پک پکج. جیسون
اضافه شد. خب پس نیازمندیها من نصب شد چون
این فولدر نود ماژور که میاد یعنی
نیازمبندیاتون اوکی شده. خب حالا میخوام
اینو ران کنم میگم نود
سرور.
جی اس
پرمیشن دینار روپورت ۸۰ آها
روپورت ۸۰ نمیذاره بیاد بالا
خب بیایم یه پورتو عوض کنیم اشکال نداره پر پایین نیاز به دسترسی ادمین داره. بیا
یه بار دیگه را میکنیم. بیا
الان پورت ۳۰۰ آوردیمش بالا. خب یعنی من
اینجا بیام بزنم لوکال هاست ۳۰۰۰
اپلیکیشن من میاد بالا. این میشه حالت
عادی که شما میخواید یه اپلیکیشن نودو
بیارید بالا. من اینجا مثلاً هر چیزی
بنویسم
اینجا نشون میده خب این اپلیکیشنست داره کار میکنه اما من نمیخوام به این شکل
بیارمش بالا میخوام با کانتینر بیارمش
بالا و یه ایمیجی داشته باشم ازش شاید از
این ایمیجه بخوام بعداً استفاده کنم
برمیگردم اینجا اول چیکار میکنم
اینو متوقفش میکنم
خب این نود ماژولو پاک میکنم.
این فایلم پاک میکنم بریم بیایم جلسه
بعدی میخوایم ایمجشو بسازیم. فعلاً
خداحافظ.
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
ایمیج در داکر به عنوان یک تمپلت یا بلو پرینت برای ایجاد کانتنر عمل میکند و شامل کد و ابزارهای لازم برای اجرا است.
ایمیج خودکار در داکر با استفاده از فایل Dockerfile ساخته میشود.
تعویض پورت در کانتنر با استفاده از پارامترهای مناسب در فایل Dockerfile یا ابزارهای مرتبط انجام میشود.
ایمیج کانتنری اپلیکیشن برای استفاده در جلسات بعدی و اجرا در محیطهای مختلف ساخته میشود.
آخرین بهروزرسانی محتوای متنی:
در این دورهی عملی و مرحلهبهمرحله، Docker و Kubernetes را از پایه تا سطح قابلاستفاده در پروژههای واقعی یاد میگیرید. از ساخت Image و اجرای Container شروع میکنیم، بعد سراغ Volumeها و مدیریت داده، Networking بین کانتینرها، ساخت اپهای چندکانتینری و Docker Compose میرویم. سپس با یک پروژه واقعی Laravel + PHP محیط توسعه/اجرا را داکرایز میکنیم، روشهای دیپلوی کانتینرها را بررسی میکنیم و در نهایت وارد Kubernetes میشویم: مفاهیم اصلی، مدیریت دیتا و Volume، شبکه در K8s و در پایان استقرار روی AWS EKS. این دوره مناسب چه کسانی است؟ برنامهنویسها و تیمهای بکاند/فرانت که میخواهند محیط اجرا و دیپلوی استاندارد داشته باشند افراد علاقهمند به DevOps و Cloud کسانی که Docker را شروع کردهاند ولی Kubernetes و Deploy را جدی میخواهند پیشنیازها: آشنایی مقدماتی با ترمینال (Linux/Windows) و مفاهیم کلی وب/اپلیکیشن (کافی است). سرفصلها (طبق دوره) Docker Images & Containers (مبانی اصلی) Managing Data & Volumes (مدیریت داده و پایداری) Docker Networking (ارتباط بین کانتینرها) Multi-Container Apps (ساخت اپ چندکانتینری) Docker Compose (ارکستریشن ساده و حرفهای) Utility Containers & Exec Commands پروژه عملی: Dockerize کردن Laravel + PHP Deploying Docker Containers جمعبندی Docker & Containers شروع Kubernetes Kubernetes Core Concepts (عملی و عمیق) Data & Volumes در Kubernetes Kubernetes Networking Deployment روی AWS EKS 📌 اگر این دوره به کارت اومد، حتماً Subscribe کن و سوالهات رو توی کامنتها بپرس تا پاسخ بدم.