از Pista Academy حمایت کنید
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در جلسه 8 آموزش جامع Docker و Kubernetes، مدرس یک برنامه پایتون ساده برای ایجاد عدد تصادفی بین دو عدد ورودی ایجاد میکند. سپس این برنامه با استفاده از Docker به یک کانتینر تبدیل میشود. در این فرآیند، مشکلی در ارتباط ورودی کاربر با کانتینر پیش میآید که با استفاده از گزینه interactive mode در دستور docker run حل میشود. همچنین، نحوه استارت و مدیریت کانتینرها با استفاده از دستورات داکر به صورت کامندلاین مورد بررسی قرار میگیرد.
نکات کلیدی
ایجاد یک برنامه پایتون ساده برای ایجاد عدد تصادفی بین دو عدد ورودی
استفاده از گزینه interactive mode در دستور docker run برای تعامل با کانتینر
مدیریت کانتینرها با استفاده از دستورات داکر به صورت کامندلاین
حل مشکل ارتباط ورودی کاربر با کانتینر با استفاده از گزینه interactive mode
متن ویدیو
متن زمانبندیشده این جلسه برای مرور، جستجو و دسترسی سریعتر.
سلام عرض میکنم خدمت دوستان عزیز. بریم سراغ ادامه بحثمون و اولین چیزی که
میخوام این جلسه بریم سراغش اینه که ما
یه اپلیکیشن جدید درست بکنیم ولی این دفعه
اپلیکیشن پایتون و یه سری کارا میخوایم
روش انجام بدیم. خب من یه دونه فایل
پایتون اینجا درست کنم. مثلاً اسمشو بذارم
rng.
خب یه کد پایتون خیلی ساده مینویسم. فرام
رندم
ایمپورت بکن
رندیتو
که یه عدد رندم اینتیجر درست میکنه این برنامه من د تا ورودی داره بچهها یه
دونه عدد کوچیکتر اسمشو میذارم مین نامبر
ورودی هرچی هستو تبدیل میکنم به اینتیجر چون ورودی که شما از اینپوت میگی میگیرید
در قالب تکست میگیرید اینو باید حتماً
تبدیلش کنید به اینتیجر
پلیز اینتر د می نامبر
همینو برای ماکسیمومم درست میکنیم دیگه
عدد بالا رو
ماکس
پرزین تر ماکس نامبر خب من د تا ورودی رو
گرفتم اول یه چک فکر میکنم عددا درست
وارد شده باشه. یعنی باید عدد دوم بزرگتر
باشه از عدد اول.
اگر کوچیکتر بود یعنی یه اشتباه وارد
کرده کاربر من. در صورت من یه پیغام خطا
بهش میدم مثلاً میگم
اینپوت
خب. اما اگه نه درست وارد کرده بود
یه عدد رندم درست کن
و بگو بین مینیموم
و ماکسیموم یه عدد رندم بهش بده و در نهایت پرینت کن اون آریا
یه برنامه خیلی ساده میخوایم اینو با
کانتینر بیاریمش بالا
یه سری چالشها میخوریم سر این قضیه که
قراره راجع به چالشه صحبت کنیم. خب بریم
سراغ چی بچهها؟ میخوایم یه ایمرج درست
بکنیم که بریم ازش کانتینر درست بکنیم. پس
میایم سراغ داکر فایل
و
منو بریم جلو. خب بیایم یه داکر فایل من
اینجا درست کنم.
داکر فایل اولین چیزی که لازم دارم ایمیج پایتونه.
خب طبیعتاً ایمج آماده برای پایتون هست
دغدغهای نداریم ولی اگه میخواید مطمئن
بشید داکر
خب
میایم اینجا سرچ میکنیم پایتون
شیمیج رسمی
در حقیقت پایتونه و میتونیم ازش استفاده
بکنیم اسمشم هست پایتون
میام اینجا میگم
فرام پایتون پس اول ایمج پایتونو میخوام
بعد ورکینگ دایرکتوری مشخص میکنم که توی
اسلش اپ باشه مثلاً یا هر اسمی که خودتون
میخواید بذارید برای دایرکتورش
بعد میگم کپی کن هر چیزی که تو اینجا
هسترو داخل اسلاش
بعد یه کامندیو اجرا کن وقتی کانتینر میاد بالا یه کامندیو اجرا کن کامنده چیه
پایتونی.پی
پی یعنی کامنده زمانی که کانتینر بیاد بالا
اجرا میشه خب بریم ایمیجمونو بسازیم
داکر بیت و بذار من قبلش یه دونه لیست ایمجا رو
ببینم
دش ا میخواد یه دونه ایمج بیشتر ندارم خب حالا بریم
بسازیم یه دونه
طبیعتاً میره احتمالاً ایمجو دانلود بکنه لوکالی
پیدا نیکرد فکر کنم یا پیدا کرد فکر کنم
لوکالی پیدا کرده بود
نه رفته دانلود کن
نه رفت دانلود کن اوکی
خب تقریباً دیگه آخر باشه رفت لایههای بعدی تمام خب من ایمیجم ساخته شد برا
اینکه مطمئن شدم یه ایمیج میزنم و این
ایمیج دوممم اومده اولی که ۵۳ بود این
جدید است
حالا چیکار کنیم بریم یه دونه کانتینر ازش بسازیم بعد ببینیم چطور میشه
میگن داکر
ران
آیدی ایمج رو میارم
خب چی شد خطا داد تا اومد عدد اولو بگیره خطا داد چرا خطا داد چون اصلاً داکر رانو
که شما میزنید بچهها قابلیت اینو نداره
که بخواد یه کانتینری بیاد بالا که ورودی
داشته باشه اصلا همچین قابلیتی نداره
الان آیا کانتینر من ران شده بریم ببینیم
پی اس
نه
توی استاپ شدهها ولی هست خب پس اینو ببندم
یه ذره زومو کم کنم
تو استاپ شدهمون هست اینها اینه که ۲۹ ثانیه قبل ساخته شده از اینا
کامندم این بوده پس این راه جواب نمیده ما
باید یه راهی پیدا کنیم کنیم که بتونیم در
حقیقت
این کانتنررو به شکلی بیاریم بالا که از
ما ورودی بخواد یعنی یه جورایی با ما باید
تعامل داشته باشه اینتراکتیو باشه ببینیم
چی داریم اصلا داکر
ران دش دش هلپ ببینیم چه آپشن بهمون میده
خب خب
آها یه دونه اینتراکتیو داریم اینجا میگه که اینو اپن نگه میداره ورودیو حد
حتی اگر اتچ نشده باشه خب این دقیقاً همون
چیزیه که دنبالشیم یعنی من میخوام یه
محیط اینتراکتیو به من بده که من بتونم
چیکار کنم ورودی بهش بدم
اینم که حالت اته دقیقاً همونه خب بریم ببینیم کدومش داره
جواب میده دش ا جواب میده یا نه
دش آو باید بزنیم خب اول یه کاری بکنیم
بچهها
خب بذارید
این بود دیگه درسته خب داکر ران یه دش آیتی میزنم
اینتراکتیو
خب ورودی اول از من میخواد من میزنم ۵
ورود دومم میزنم ۲۰ و عدد رندم میشه ۱۲
پس الان کار کرد خب
یه چیزی یادتونه کانتینرا رو که دوباره ران میکردید تو حالت اتچ مود میومد بالا
آیا اون حالتم کار میکنه؟ بریم ببینیم چک
کنیم
داکر پی اس لیست کانتنرا بهم بده کانتنر
ران ندارم خب دش ا چطور آره خب من یکی از
این کانتنرا رو دوباره ران میکنم مثلاً
این اول دیگه را میکنم داره
داکر استارت
دیفالت روی اتچ مود میاد بالا دیگه
هیچ اتفاقی نیفتاد یعنی ورودی رو از من
نخواست خب بذار تو اتش مود بیارمش بالا با
دش ا
خب آ من یه بار استاپش استارت کرده بودم دوباره که نمیتونم استارتش کنم پس باید
استاپش کنم اول
خب استاپ شد حالا دوباره رانش کنم با اتچ خب میگه ورودی اولو بده ورودی اولو بهش
میدم
شد
کلاً قاطی کرد یه از اول استاپ
دوباره ران کن ورودی اول اصلا کلاً قاطی میکنه اصلاً مشخصه که این روش جواب نمیده
با این حالت اتچمد جواب نمیده حتماً باید
برم تو حالت در حقیقت آی آیتی که بتونم
ازش استفاده بکنم یه چیز دیگه
داکر استارت همین جا اگه بریم رو حالت دش
آی اینم جواب میده
رو یادم رفت دوباره استاپ کنم
استاپ
فم باز جواب میده یه عدد رندم بین ۵ و ۱۲ ۸ پس د راه داریم یکی اینکه موقع که داریم
حداقل کانتینررو رو میسازیم دش آیتی
بزنیم. یکی اینکه زمانی که داریم این
کانتینررو استارت میکنیم دش A دشآی بزنیم
که هم حالت اتچ مود باشه هم حالت
اینتراکتیو باشه بتونیم باهاش کار بکنیم و
تعامل داشته باشیم.
خب نکته دیگهای نمیمونه فکر کنم. آره
بریم بیایم یه ذره قسمت بعدی میخوام راجع به مدیریت کردن کانتینرها و ایمیجها و
نحوه حذفشون صحبت بکنیم. ما تو جلسات قبلی
توی داکت دسکتاپ اینو دیدیم تو خود محیط
گرافیکیش ولی میخوام با کامند ببینیم.
خداحافظ. ‏Yeah.
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
برای تعامل با کانتینر، از گزینه interactive mode در دستور docker run استفاده میشود.
دستور docker run برای شروع یک کانتینر استفاده میشود.
کانتینرها با استفاده از دستورات داکر به صورت کامندلاین مدیریت میشوند.
آخرین بهروزرسانی محتوای متنی:
در این دورهی عملی و مرحلهبهمرحله، 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 کن و سوالهات رو توی کامنتها بپرس تا پاسخ بدم.