از Pista Academy حمایت کنید
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در جلسه 12 آموزش جامع Docker و Kubernetes، مدرس به بررسی یک پروژه واقعی با استفاده از Docker میپردازد. ابتدا ایمیج Docker از پروژه ایجاد شده و سپس یک کانتینر از آن اجرا میگردد. در ادامه، به مسائلی مانند حفظ دیتا در کانتینر و ایرادهای ناشی از حذف کانتینر پرداخته میشود. همچنین، اهمیت نگهداری دیتا در زمان پاک کردن کانتینر به عنوان یکی از مسائل مهم مطرح شده و مفهوم Volume در Docker به عنوان راه حل ارائه میشود.
نکات کلیدی
ایجاد ایمیج Docker از پروژه و اجرا کانتینر آن.
نگهداری دیتا در زمان پاک کردن کانتینر با استفاده از مفهوم Volume.
بررسی ایرادهای ناشی از حذف کانتینر و راه حلهای مرتبط با آن.
درک اهمیت حفظ دیتا در محیطهای کانتینری.
متن ویدیو
متن زمانبندیشده این جلسه برای مرور، جستجو و دسترسی سریعتر.
سلام عرض میکنم خدمت دوستان عزیز. بریم سراغ ادامه بحث داکر و از این جلسه
میخوایم بریم سراغ فصل جدیدمون و راجع به
یک موضوع جدید صحبت کنیم. خب اول بیایم
طرح مشکل بکنیم
که ببینیم راجع به چه مشکلی میخوایم صحبت
بکنیم. اینکه قراره چه راهحلی بابتش ارائه
بدیم. قبلش
ما برای این فصل روی پروژه جدید میخوایم
کار بکنیم. از این لینک بچهها میتونید
پروژه رو دریافت بکنید.
خب
و که با همدیگه بریم جلو پروژه یه همچین
ساختاری داره
شما وقتی گرفتید د تا فولدر تمپ و فیدبکم
داخلش درست کنید فکر کنم نیست داخلش
آدرس بذارید براتون یه بار بزرگ شدهشو بیارم
خب از این لینک میتونید در حقیقت فایل
پروژه رو دریافت بکنید
بریم شروع بکنیم
اولین کاری که میکنیم من میخوام یه دونه
ایمج بر پایه
این پروژه درست بکنم مثل همه کارای که تا
الان یاد گرفتیم و انجام دادیم
میام اینجا یه فایل چی درست میکنم فایل داکر فایل درست میکنم اصلا داخل فیدبک ن
بیرون اینجا
داکر
فایل خب
میگم که برو از نوت ورژن ۱۴شو بیار
بعد ورکینگ دایرکتوری مشخص میکنم
اسلش اپ کپی میکنم
داخل ورکینگ دایرکتوری بعد ران میکنم دستور امپ اینستالو
که اون دپندنسیم نصبشه. بعدش کپی میکنم تمام محتویات این پروژمو داخل ورکین
دایرکتوری
روی پورت
۳۰۰ میارمش بالا
و در آخرم یه کامندیو ران میکنم زمانی که
کانتینرم میاد بالا
نوت
سرور. خب
این فایل داکرام یه ایمیج براش بسازیم
داکر بیت نقطه خب این ایمیجمو رفت بسازم آخ من یه چیزی
یادم رفتهم
یه اسم برای ایمیج بذارم که یادمش کن الان
ایمجی بسازه ایمج جرا ایراد نداره
خب عزیز
تمام ایمجام
اولم تو کانتینرا این کانتینرا رو پاک کنم
دیلیت دیلیت ایمجامونم بذار پاک کنیم
دیلیت
خب اوکی یه بار دیگه ایمجو میسازم یه اسم فقط این
دفعه بهش میدم
یه دش تی میزنم اسمشو میذارم
فیدبک دش نوت
خب الان یه ایمج دارم من درسته خب بریم یه دونه
کانتینر باهاش بیاریم بالا
و
این کلیر کنم این بیاد بالا که واضح باشه خب
میگم داکر ران دش پی روی پورت ۳۰۰ لوکالشم ۳۰۰ه
بعد
دشتی هم میذارم م یه اسمم براش میذارم
میذارم اسمشو فیدبک
دش اپ
بعد دش دش آرمم میزنم که استاپ کردم خودش
پاک بشه و اسم ایمجم میدم فید
بک دش
اپلیکیشن من رانه کانتنرم بالاست روپورت ۳۰۰۰ آوردمش بالا
چرا چرا چرا
من یه بار بروزرم به بعد کنم. خب من توی اپلیکیشنم اینو رو پورت ۳۰۰
تنظیم کردم. این پرت ۸۰ بود. فکر کنم به
خاطر این باشه فکر کنم. خب بذار من برای
اینکه حالا سریعتر بریم جلو من دوباره
همه چی کنم.
میکنیم
ای
چی میگه؟
تو یوزر خب ب داکر استاپ میکنه
این ایمج آها داشتم ایمیجه رو پاک میکردم برای همین گیر داده داده بودم
دارم کانتنر پاک میکنم خب اشکارم بریم
دوباره ایمیجمونو بیاریم بالا
داکر
بیلد دش تی اسمشو میذارم فیت
بک دش نودر
بعد همینجا خب این بره دوباره بسازه
بذاریم یه جموسا
خب اپلیکیشنم اومد بالا حالا بریم سراغ این اپلیکیشن ببینیم که قرا اپلیکیشن برای
ما چیکار بکنه؟
من یه دونه تایتل براش میدم مثلاً میزارم
تستیز
تست خب اینو سیو میکنم این الان فیدبک من سیو شد خب حالا برای اینکه بخوام به
فیدبکم دسترسی داشته باشم باید چیکار کنم؟
توی خود برنامه گفتم که اگه طرف بره تو
آدرس
فیدبک
تست.txی تی ایکس دی فیدبکشو میتونه ببینه. خب تا اینجا مشکل خاصی وجود نداره.
حالا من برم یه کار میکنم.
من برم کانتنرمو استاپ بکنم دوباره رانش
بکنم ببینم که در حقیقت چه اتفاقی میفته.
من اگه کانتل رو استاپ بکنم داکر استاپ
این کانتنر استاپ کنم موقع ساختن این کانتنر من فلگ چی زده بودم
دش دش آر ان استاپ کنم کانتنرم کلاً حذف
میشه درسته
نگاه کنید الان دش ا هم بزنم دیگه وجود نداره من کانتینرمو دوباره ران میکنم
یه سؤالی این فیدبکی میمونه به نظرتون نه
پاک شد
یکی از ایراداتی که ما داریم این کانتنر
در حقیقت داکر داره یعنی دیتا تو خود
کانتینره داره ذخیره میشه وقتی کانتینر
پاک بشه دیتاتون هم پر تمام یعنی نمیاد
ببرت مثلاً تو این فولدری که شما تو
لوکالتون دارید ذخیره بشه که پاک نشه این
خیلی بده حالا یه نکته دیگه
من یه بار داکر استاپ دوباره بزنم
دوباره ران میکنم این دفعه دش دش آر امو دیگه نمیزنم فقط میگم بسازین کانتینرو خب
میام اینجا یه رفرش میدم اینو دوباره
میزنم تست این متنشو عوض میکنم
که با یکی چیز
خب این اومد درسته دوباره بیام داکلمو استاپ کنم این دفعه
پاک نمیشه چرا چون دشش آرو برداشتم
خب دوباره بیام رانش کنم استارتش کنم
بچهها دیتاون الان نمیپره دیتاون سر جاش
میمونه نگاه کنید این باز هست فقط زمان
میپره که کانتنر من کلاً حذف شده باشه که
من میخوام جلوی اون قضیه رم بگیرم چرا
باید کانتینرم وقتی پاک میشه دیتای من پاک
بشه خب دیتا برام مهمه حالا چرا اصلاً این
قضیه کلاً مهمه مثلاً فرض کن شما سورس
کدتونو میخواید چیزی عوض کنید خب سورس کدو
عوض بکنید باید ایمیجو دوباره بسازید بعد
کانتنر از اول بسازید وقتی کانتنررو از
اول میزید تمام دیتاهای قبلیتون پاک شد
برای حل این مشکل ما یه
مفهومی داریم داخل داکر به نام والیوم رو
که ما جلسه بعدی بیایم میخوایم راجع بهش
صحبت کنیم. فعلاً خداحافظ.
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
برای حفظ دیتا در کانتینر Docker، از مفهوم Volume استفاده میشود که به عنوان یک راه حل مناسب برای نگهداری دیتا در زمان پاک کردن کانتینر معرفی شده است.
حذف کانتینر Docker میتواند باعث از دست دادن دیتا شود. بنابراین، استفاده از Volume برای نگهداری دیتا در زمان حذف کانتینر ضروری است.
برای نگه داشتن دیتا در کانتینر Docker، باید از مفهوم Volume استفاده کرد تا دیتا به صورت پایدار ذخیره شود و در زمان حذف کانتینر از دست نرود.
آخرین بهروزرسانی محتوای متنی:
در این دورهی عملی و مرحلهبهمرحله، 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 کن و سوالهات رو توی کامنتها بپرس تا پاسخ بدم.