از Pista Academy حمایت کنید
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در جلسه ۱۰ آموزش Docker و Kubernetes، مدرس به سه موضوع اصلی میپردازد: اینسپکت کردن ایمیج داکر، کپی کردن فایل به یا از کانتینر، و نامگذاری ایمیج و کانتینر. در این جلسه، به بررسی جامع اطلاعات ایمیج با استفاده از دستور `docker inspect`، کپی فایل با دستور `docker cp`، و نحوه نامگذاری ایمیج و کانتینر با استفاده از نام و تگ میپردازد. همچنین، به نحوه پاک کردن ایمیجها با استفاده از پسوند 'dsh' و تعیین نام کانتینر به صورت مثالی اشاره میشود. در پایان، اشاره میشود که بحث نتورکینگ در جلسه بعدی مطرح خواهد شد.
نکات کلیدی
استفاده از دستور `docker inspect` برای بررسی جامع اطلاعات ایمیج داکر.
کپی کردن فایل به یا از کانتینر با دستور `docker cp` و مدیریت مسیرهای فایلی درون کانتینر.
برای پاک کردن ایمیجها در داکر، نام آنها باید با پسوند 'dsh' پایان یابد.
نام کانتینر در داکر قابل ویرایش است و میتوانید آن را به صورت دلخواه تعیین کنید.
متن ویدیو
متن زمانبندیشده این جلسه برای مرور، جستجو و دسترسی سریعتر.
سلام عرض میکنم خدمت دوستان عزیز. خب بریم سراغ ادامه بحثمون. این جلسه راجع به
۳ تا موضوع میخوایم صحبت بکنیم. موضوع
اول راجع به کامند اینسپکت ایمیج میخوایم
صحبت بکنیم که دقت میاید یک بررسی جامعه
میکنه اون ایمیجی که ساخته شده.
بعد بحث کپی کردن فایل از یا به کانتینرا
رو میخوایم چک بکنیم و بحث نامگذاری یا
تگ زدن کانتینرها و ایمیجها رو میخوایم
صحبت بکنیم.
خب برای اینکه لازم نباشه بنویسم من از
چجپیتی خواستم که درق یه متنی بهم بده که
بریم با هم جلو. خب [صدای خرناس] اول
میریم سراغ اینسپکت کردن ایمیج و ببینیم
که در حقیقت چیه. داستان
میگه زمانی که شما یک ایمیج داکر میسازید
خب
یک پکیجی شامل فایلهای سیستمی و متادیتا
خب که لایههای مختلفم داشت یادتون باشه
راجع به لایهها صحبت کردیم
میگه بعضی وقتا لازمه که شما این متادیتا
رو ببینید مثلاً متغیرهای محیطی رو ببینید
خب
و [گلویش را صاف میکند] کلی حالا اطلاعات
دیگه برای این کار یه دستوری داریم به نام
داکر ایمج اینسپکت آیدی ایمج اسمشو
میذاریم حالا من الان بذارید یه دونه باز
بکنم اج بدید
خب بذارید
البته نمیدونم ایمیجی مونده برامون یا نه
چون فک کنم درصد همه رو زدیم پاک کردیم یه
دونه ایمج داریم خدا شکر پس میگه داکر
اینسپکت
خب
داکر ایمج اینسپکت ببخشید داکر
ایمج
اینسپکت آیدی ایمج رو میدیم
خب اطلاعات خیلی زیادی رو به ما میاره نشون
میده
[گلویش را صاف میکند]
برگردیم اینجا
میگه یه آرایی از جیسونها به ما میده که درق اطلاعاتون اینویج هست خب
خروجی یک کانفیگو به ما میده خب اون
کانفیگی که در حقیقت ایمیج باهاش ساخته
شده مثل اینوامنت وریبل ها و کامندمون
اون در حقیقت ساختار ایمج رو بهمون میده
که مثلاً ای ام دی ۶۴ یا آرم ۶۴ و غیره و
لایهها رو بهمون نشون میده
میگه شما میتونید حتی اینو بچهها چیزم بکنید
خروجیشو محدود بکنید فرمت بکنید حالا با
دستوری که مثلاً اینجا نوشته خب خب حالا
ما خیلی وارد این نمیشیم بریم ببینیم
اصلاً چیا داره یه نگاه بندازیم
این آیدیمونه که این بچهها خب دقیقاً اون
تیکه اول آیدی اینه
بعد دیگه چی داره
سال زمانی که ساخته شده این ایمج
این روی پورت چی بوده
اینورهایی که ساخته
بعد اون کامندی که قراره بعداً وقتی کانتینررو میسازید رام بشه که این نود
بوده ورکینگ دایرکتوریمون
بعد آرشیتک اون بری لینوکسه سایزش اینم لایههامونه
لزوماً بچهها این تعداد لایه با این یکی
نیستا ما اینجا
۱ ۲ ۳ ۴ ۵ ۶ تا لایه داریم ولی اینجا
لایههامون بیشتره چرا یه سری از این
لایهها مال خود نوده
بهخاطر این بیشتره.
بعد اینم متادیتایی که داریمه
دسکریپشنشو داریم اینجا سایز داریم
بعد
چیزی به درد بخور دیگه چی داریم [گلویش را صاف میکند] همین
این میشه یه بررسی جامعه که ما میتونیم
لای در رابطه با یک ایمج داشته باشیم
خب بریم سراغ موضوع بعدیمون بحث کپی کردن
فایل به کانتینر یا از کانتینر خب
ببینیم چیه داستان
میگه که کانتنرای داکر خب ا یه فایل سیستم
ایزوله شده خودشونو دارن
اما میگه بعضی مواق نیاز که شما یک مثلاً
فایلی رو مثلاً فرض کنید یه کانفیگوریشن
فایلی رو مثال خب مثلاً فرض کنید یه وب
سرور دارید میخواد کانفیگ وب سروررو ببرید
داخل کان کانتنر یا مثلاً یه مواقع امکان
داره اون کانتنر شما یه لاگی داره تولید
میکنه میخواید اون لاگه رو بیارید بیرون
اینجا که میتونید از دستور کاپی از کاپی
استفاده بکنید یا سی پی
آپشنشم اینه میگه که داکر سی پی آپشنی که
پاس میدیم دقت فلگایی که میفرستیم
سورسمون و دستینیشنمون
اینکه از سیستممون بک به کانتینر باشه یا
از کانتینرمون به سیستم باشه تصمیم خودمون
یه سناریو شماره Aو بریم با هم ببینیم
میگه شما یک فایلی رو لپتاپتون دارید به
عنوان هاست و میخواید بفرستینش داخل یه
کانتینری که در حال اجراست
خب
چیکار میکنید میاد میگید داکر سی پی این
آدرس فایلست رو سیستم خودتون
اینم آدرس اینم در حقیقت اسم کانتینرمونه
و جایی که میخوایم بفرستیم حالا اینجا اس
گذاشته برای کانتنر که ما الان جلوتر اس
گذاری هم یاد میگیریم سناریو بی چیه؟
اومده یه فایلی رو از کانتینر درآورده
ریخته رو سیستم خودم
بریم حالا این مثالشو با هم ببینیم
خب بیایم اینجا یه کلیرم
خب
[گلویش را صاف میکند][صدای سرفه] حالا فرض میکنم ایمیجمونم همین باشه یه
دونه ایمیج بسازیم روز شکدار نگیریم
بیا یه دونه ایمج بسازیم
خب فایلش کپی کرد دانلود کرد بهتره بگم بعد داره لایهها رو میسازه و تمام
خب این ساخته شد درسته
بریم ببینیم
بله ایناشش خب بچهها لزماً لازم نیست
حتماً اینو بزنید آیدی رو ببینید این آیدی
نهاش خط آخری که میسازه آیدی رو بهتون
میده
خب
بریم سراغ کانتنر داکر
ران دش پی پورت ۳۰۰۰ دقه ۳۰۰ از ایمیج
این
خب کانتنرمون ساخته شد الان بریم سراغ کپی کردن فایل
داخل کانتینرمون اجازه بدید یه دونه
بیا اینور درک
پی اس این کانتنری که الان داره ران میشه درسته
خب من یه فایلی اینجا درست کنم یه فایل
تست
test تست test تست.tیx تی اکس دی
داخلش مینویسم ۲۰ تا
خب میخوام اینو پاس بدم بره داخل این
کانتنت چی بود دستور داکر سی پی سورسمونو
مشخص میکردیم گفتم همین جا که هستم فایل
تست.
تی اکس دی
بفرست کجا بفرست داخل
بذارین ببندم
اینجا داخل این کانتینره خب و نامگذاریشم
نگاه بکنید چهجوری نامگذاری میکرد اسمو
میآورد یه دو نقطه میذاشت آدرس دهی
میکرد
دو نقطه اسلش مثلاً داخل یه دونه
دایرکتوری به اسم تست بفرسته خب خب
پس داکر سی پی از این به این حالا ما برعکس بود سیستممون میخواستیم بفرستیم
داخل اون کانتین
ببینیم اجازه میده میگه یه فایل د
کیلوبایتی
به با موفقت کپی شد
میگه همچین کانتنری نداریم
خب الان درست شد خب حالا سؤالی که پیش میاد اینه که ما از کجا بفهمیم کپی شده
میتونیم یه کار بکنیم این فایله رو من
میرم پاک میکنم یه بار دیگه یه دفعه میگم
از کانتینر کپی کن اینور اگه کپی شه یعنی
بوده دیگه درسته برعکسم انجام میدیم داکر
سی پی میگم برو داخل این کانتنره دو نقطه
برو داخل تست
یه فایل تست. تی اکس دی هست اونو برای من
بیار کپی کن کجا کپی کن همین جا
میگه این دایرکتوری نیست بیا یه نقطه بذار اینجا
ا ا ا اذیتمون نکن دیگه
برو داخل این برو برو توی تست. تست بود اسمشو گذاشتیم دیگه
خب بذار یه بار دیگه بذار کلیر بزنم بیاد بالا خلوتش اینجا ببین من میگم که برو
داخل این برو داخل تست
بعد تستی اکس دی رو بردار بیار بریز اصلاً بریز اینجا داخل تست بیا یه دایرکت مشخص
کنی
درست شد [صدای خرناس] جالبه که
ولی نباید این شکلی میومد یعنی من فایلو ریخته بودم داخل یک دایرکتوری به نام تست
الان محتویات تستو آورد اینور داخل هیچی
تست
در که منور میخواستم داخل دایوکتری تست
بریزه
تست نذار یه اسم دیگه براش بذار سی پی تست
کپی میکنه ها ولی میخوام آها میخوام اینجا دایرکتوری بسازم اجازه نمی میده یعنی
این سمت که میخوام دایرکتوری بسازم اجازه
بهم نمیده میگه تو اجازه ساختن دایرکتوری
نداری حالا جالبه ولی به هر حال کپی کرد
فایلو و فایلا وجود داشت داخل کانتینرمون
اینم از بحث کپی کردن بریم سر نامگذاری
که دقیقاً مبحث اصلی اینقدر درس این
جلسهمون بود
بیایم اینجا ما تا الان نام اسم
نمیذاشتیم دیگه نه برای ایمیجامون اسم
میذاشتیم نه برای کانتنرامون ایمیج که
میرفتیم از آیدیش استفاده میکردیم.
کانتینرم که خودش میومد یه اسم عجق وجقی
میذاشت از اون استفاده میکردیم.
اما شما این امکان رو دارید زمانی که
دارید ایمیجو میسازید براش اسم بذارید
حتی تگم بزنید کانتنرم به همچنین
خب بریم یه دونه با هم مثال ببینیم خب
راجع به اسم گذاشتن
ببینیم که چهجوریه
بیا یه ایمیج بسازیم بر اساس یه اسمی که
براش میذاریم بیایم اینجا خب
داکر بیلد دش دش اول ببینیم داکومنتشو
ببینیم ببینیم چهجوری میشه اسم گذاشت
ایناش
اینجوری با دش تیه خب پس میایم اینجا
دش تی میزنم خب یه اسم براش میذارم حالا
هر اسمی بخواید میتونید بذارید اسم برای
ایمج بچهها دو قسمتیه اول یه اسم
میذارید مثلاً اسم اولشو میذارم گولز
بعد دو نقطه تگشو میزنید مثلاً میذارم
لیتست یا میتونید بذارید عدد بذارید
مثلاً ۱۴ ۱۲ هرچی دوست دارید. خب
مثلاً اینجا هم بچهها ما اومدیم لایههای
داکر رو میساختیم
میدونستیم اینجا دو نقطه مثلاً ورژن ۱۴
نودو من میخوام یعنی تگم اینجا حتی اینجا
همشون تگ بدید یعنی ایمیج نودو داره میره
میگیره تگ بدید بگید یه ورژن خاصشو
میخوام دقیقاً اینجا همینه
اینجا میاد به این ایمیجتون یه تگی میدید
بذارین ساخته بشه حالا ببین بیاید ایمیجز بزنیم ببینیم اومده یا نه
ایناش این دیگه اسم داره برخلاف پایینیا این
دیگه اسم داره
یه نکتهای بچهها اگه بخواید همه ایمیجا
رو پاک بکنید دستورش بود میگفتیم که داکر
ایمج پراون درسته اگه بخوام اونایی که اسم
دارنم پاک کنیم کنیم حتماً باید آخرش دش ا
اضافه کنید بچهها اینو یادتون باشه یعنی
این پرون خالی بزنید اونایی که تک شدهرو
پاک نمیکنه آخرش حتماً باید یه دونه دش ا
اگه اشتباه نکنم اضافه بکنید الان بذارید
من اینو داکیومنتشو ببینم
الان از جمنای میپرسیم ولی چیزی که تو
ذهنم اینه که دش ا میخواست خب حالا ما اسم
گذاشتیم بریم سراغ کانتینر برای ساختن
کانتینرم میتونیم اسم بذاریم خب برای
ساختن کانتینر هم شما میتونید اسم
بذارید. میاد میگید که داکر
ران دش پی ۳۰۰ روی ۳۰۰ یه دش دی میزنم
دیت مود باشه دش دش آر امم میزنم که اگر
استاپش کردم حذف بشه بعد دش دش نیم میزنم
اسمشو میذارم مثلاً میذارم گولز اپ
بعد باید آیدی ایمجو بدم هم میتونم
آیدیشو بدم هم میتونم اسمشو بدم اسم بدم
کانتنرم ساخته شد داکر پی اس
کو گوش
چی شد
آ میگه پورت دی الوکیتد آ راست میگه من چون یه کانتنر الان ران دارم رو پورت ۳۰۰۰
خب بیا پورتشو عوض میکنیم ۳۰۱ یک
درست شد
نگاه کنید ایناش اسم داره دیگه الان
این ایمیجشه این اسمشه دیگه اسم عجب وجب
خودش نمیذاره منم اسمشو تعیین میکنم
الان اینو استاپش بکنید خودکار بچهها پاک میشه چون دشتش آرم
گذاشتم
پی اس ا هم بزنم دیگه نیست کلاً پاک شد بذارید این یکی رم اصلاح کنیم
اینم بحث قاعده نامگذاری ایمیجها و کانتنرها
اجازه بدید من میبینم نکتهای چیزی جا
نمونده باشه تو اینجا
نه نکتهای نمونده اینجا
اسمم بچهها میتونید عوض کنید داستی این نکته هم یادم میرفت خب این امکانو دارید
که اسمم عوض بکنید
اینکه دشتش نیم برای کانتینره اینجا
میتونید بیاید کانتنر اسمشو اگه دوست
داشتید عوض کنید داکر رینیم اسم قدیم اسم
جدید
بعد
و حالا بحث نتورکینگو ما تو فصل بعدی خواهیم داشت همین بریم بیایم اداش جلسه
بعدی صحبت صحبت کنیم. فعلاً خداحافظ.
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
برای بررسی اطلاعات ایمیج داکر، از دستور `docker inspect` استفاده کنید.
برای کپی فایل به یا از کانتینر، از دستور `docker cp` استفاده کنید.
برای پاک کردن ایمیج داکر، نام آن را با پسوند 'dsh' پایان دهید.
بله، نام کانتینر در داکر قابل ویرایش است و میتوانید آن را به صورت دلخواه تعیین کنید.
آخرین بهروزرسانی محتوای متنی:
در این دورهی عملی و مرحلهبهمرحله، 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 کن و سوالهات رو توی کامنتها بپرس تا پاسخ بدم.