Docker Bench for Security
یک ابزار متنباز است که برای بررسی پیکربندیهای امنیتی در محیط داکر طراحی شده است. این ابزار با استفاده از یک سری تستهای استاندارد، تنظیمات داکر شما را بررسی میکند تا اطمینان حاصل شود که بهترین شیوههای امنیتی رعایت شدهاند.
ویژگیهای Docker Bench for Security :
تستهای خودکار امنیتی
ابزار یک سری تست را اجرا میکند که بر اساس دستورالعملهای امنیتی منتشر شده توسط CIS Docker Benchmark طراحی شدهاند. این تستها شامل بررسی پیکربندیهای کانتینر، داکر دیمون یا (Docker Daemon) ، شبکهها، و Images هستند.
گزارشدهی دقیق
نتایج تستها بهصورت گزارش متنی ارائه میشوند و شامل موارد موفق (Pass)، هشدارها (Warn)، و خطاها (Fail) هستند.
پوشش جامع
این ابزار تقریباً تمامی جنبههای مهم داکر را بررسی میکند، از جمله:
- تنظیمات شبکه.
- دسترسیهای کانتینرها.
- امنیت هسته (Kernel).
- مدیریت کاربران و گروهها.
- سازگاری با اکثر سیستمها
این ابزار روی سیستمعاملهای لینوکس و نسخههای مختلف داکر اجرا میشود و برای استفاده در محیطهای تولیدی (Production) مناسب است.
مزایای استفاده از Docker Bench for Security
سادگی: بدون نیاز به دانش پیشرفته میتوانید امنیت سیستم داکر خود را بررسی کنید.
سرعت: تستها در عرض چند دقیقه اجرا میشوند.
قابلاعتماد: بر اساس استانداردهای جهانی مثل CIS Benchmark توسعه داده شده است.
محدودیتها
فقط برای داکر: این ابزار تنها برای داکر طراحی شده و ابزارهایی مثل Kubernetes یا Podman را بررسی نمیکند.
نظارت مداوم ندارد: این یک ابزار نظارتی مداوم نیست و تنها هنگام اجرا وضعیت را بررسی میکند.
وابستگی به دانش کاربر: گزارشها باید توسط کاربر تحلیل شوند، و رفع مشکلات نیازمند دانش فنی است.
چگونه Docker Bench for Security کار میکند؟
فقط کافیه دستور زیر را در محیط هاست خودتون اجرا کنید تا همان موقع تمامی نتایج را روی صفحه ببینید:
همچنین میتونید داکیومنت کامل اون رو در صفحه ی گیت هاب مربوطه مطالعه نمایید.
در ادامه اسکرین شات هایی از این ابزار وجود دارد
یک ابزار متنباز است که برای بررسی پیکربندیهای امنیتی در محیط داکر طراحی شده است. این ابزار با استفاده از یک سری تستهای استاندارد، تنظیمات داکر شما را بررسی میکند تا اطمینان حاصل شود که بهترین شیوههای امنیتی رعایت شدهاند.
ویژگیهای Docker Bench for Security :
تستهای خودکار امنیتی
ابزار یک سری تست را اجرا میکند که بر اساس دستورالعملهای امنیتی منتشر شده توسط CIS Docker Benchmark طراحی شدهاند. این تستها شامل بررسی پیکربندیهای کانتینر، داکر دیمون یا (Docker Daemon) ، شبکهها، و Images هستند.
گزارشدهی دقیق
نتایج تستها بهصورت گزارش متنی ارائه میشوند و شامل موارد موفق (Pass)، هشدارها (Warn)، و خطاها (Fail) هستند.
پوشش جامع
این ابزار تقریباً تمامی جنبههای مهم داکر را بررسی میکند، از جمله:
- تنظیمات شبکه.
- دسترسیهای کانتینرها.
- امنیت هسته (Kernel).
- مدیریت کاربران و گروهها.
- سازگاری با اکثر سیستمها
این ابزار روی سیستمعاملهای لینوکس و نسخههای مختلف داکر اجرا میشود و برای استفاده در محیطهای تولیدی (Production) مناسب است.
مزایای استفاده از Docker Bench for Security
سادگی: بدون نیاز به دانش پیشرفته میتوانید امنیت سیستم داکر خود را بررسی کنید.
سرعت: تستها در عرض چند دقیقه اجرا میشوند.
قابلاعتماد: بر اساس استانداردهای جهانی مثل CIS Benchmark توسعه داده شده است.
محدودیتها
فقط برای داکر: این ابزار تنها برای داکر طراحی شده و ابزارهایی مثل Kubernetes یا Podman را بررسی نمیکند.
نظارت مداوم ندارد: این یک ابزار نظارتی مداوم نیست و تنها هنگام اجرا وضعیت را بررسی میکند.
وابستگی به دانش کاربر: گزارشها باید توسط کاربر تحلیل شوند، و رفع مشکلات نیازمند دانش فنی است.
چگونه Docker Bench for Security کار میکند؟
فقط کافیه دستور زیر را در محیط هاست خودتون اجرا کنید تا همان موقع تمامی نتایج را روی صفحه ببینید:
docker run --rm --net host --pid host --userns host --cap-add audit_control \
-e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST \
-v /etc:/etc \
-v /var/lib:/var/lib:ro \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
--label docker_bench_security \
docker/docker-bench-security
همچنین میتونید داکیومنت کامل اون رو در صفحه ی گیت هاب مربوطه مطالعه نمایید.
در ادامه اسکرین شات هایی از این ابزار وجود دارد
YouTube
Docker bench security for docker security assessments
This video is a part of our flagship course "Hacking and Securing Docker Containers".
If you are interested in viewing the full course, you can use the $9.99 coupon code YTPROMODC or click the direct link below for a massive discount.
https://www.udemy.com/hacking…
If you are interested in viewing the full course, you can use the $9.99 coupon code YTPROMODC or click the direct link below for a massive discount.
https://www.udemy.com/hacking…
🔥5❤🔥3👍1
SSH Passwordless !
تو حوزه ی شبکه ، خیلی پیش میاد که بخواید دائما به سرور های لینوکسی متصل بشید و یا به اصطلاح SSH بزنید بهشون .
حالا هر سرور آدرس های مختلفی داره و حتی یوزر و پسورد های متفاوتی هم دارند ، اما به نظر من سخت ترین بخش ماجرا ، حفظ کردن پسورد هست ، اونم در صورتی که پسورد از کارکتر های عجیب غریب استفاده نشده باشه !
چه راهکاری برای اینکه نخوایم پسورد رو حفظ کنیم یا هر بار که میخوایم متصل بشیم ، پسورد رو وارد نکنیم وجود دارد؟
استفاده از کلید های عمومی یا Public Key !
تو بحث رمزنگاری ، ما کلید عمومی داریم و کلید خصوصی که توی پست جدا گانه ای در موردش مختصر توضیح میدم .
اما با داشتن کلید عمومی ، میتونیم خودمون رو از شر وارد کردن پسورد رها کنیم . چطوری؟
اگر سیستم مبدا ، یا سیستمی که به صورت لوکالی متصل هستیم لینوکسی هست ،
دستور زیر رو توی ترمینال وارد کن :
Generating public/private rsa key pair.
در ادامه سوال هایی که پرسیده میشه :
برای این است که بتوانی یک رمز عبور اضافی برای کلید SSH خود تنظیم کنی. این رمز عبور باعث میشود که حتی اگر کسی به فایل کلید خصوصی شما (مثلاً id_rsa) دسترسی پیدا کند، بدون این رمز نتواند از آن استفاده کند. ما معمولا نمیزاریم .
و در نهایت هم کلید های عمومی و خصوصی ساخته شده و در مسیر های زیر قرار میگیرند :
Your identification has been saved in /root/.ssh/id_rsa (Private Key)
Your public key has been saved in /root/.ssh/id_rsa.pub (Public Key)
حالا سیستم مبدا کلید های خودش رو داره .
نکته ی خیلی خیلی مهم ، کلید عمومی ، فقط و فقط روی همین سیستم میمونه ، ما اصلا بهش کاری نداریم ، اگر اشتباهی این کلید جایی کپی بشه ، داستانش گریبانگیرتون میشه . پس خیلی احتیاط کنید.
حالا با کمک کلید عمومی که تولید کردیم میتونیم به هر سرور لینوکسی دیگه ای که میخوایم SSH بزنیم و قرار هم نیست دیگه با هر بار SSH زدن ، پسوردش رو بزنیم وصل بشیم ، منتهی کافیه که این کلید عمومی رو بهش بدیم :
و تمام ، فقط کافیه بعد از اجرا دستور بالا ، یکبار دیگه پسورد سرور مقصد رو بزنیم ، و بعد از این برای همیشه از شر زدن پسورد خلاص بشیم ، این دستور رو به ازای هر سرور مقصد دیگه ای که نمیخوایم دیگه با SSH زدن به آن ، پسورد بزنیم ، اجرا میکنیم .
برای وقتی که سیستم مبدا ویندوز هست ، از نرم افزار Putty Generate Key استفاده میکنیم که توضیح کاملش توی ویدیویی که لینکش رو گذاشتم هست.
تو حوزه ی شبکه ، خیلی پیش میاد که بخواید دائما به سرور های لینوکسی متصل بشید و یا به اصطلاح SSH بزنید بهشون .
حالا هر سرور آدرس های مختلفی داره و حتی یوزر و پسورد های متفاوتی هم دارند ، اما به نظر من سخت ترین بخش ماجرا ، حفظ کردن پسورد هست ، اونم در صورتی که پسورد از کارکتر های عجیب غریب استفاده نشده باشه !
چه راهکاری برای اینکه نخوایم پسورد رو حفظ کنیم یا هر بار که میخوایم متصل بشیم ، پسورد رو وارد نکنیم وجود دارد؟
استفاده از کلید های عمومی یا Public Key !
تو بحث رمزنگاری ، ما کلید عمومی داریم و کلید خصوصی که توی پست جدا گانه ای در موردش مختصر توضیح میدم .
اما با داشتن کلید عمومی ، میتونیم خودمون رو از شر وارد کردن پسورد رها کنیم . چطوری؟
اگر سیستم مبدا ، یا سیستمی که به صورت لوکالی متصل هستیم لینوکسی هست ،
دستور زیر رو توی ترمینال وارد کن :
ssh-keygen
Generating public/private rsa key pair.
در ادامه سوال هایی که پرسیده میشه :
Enter passphrase (empty for no passphrase): no
برای این است که بتوانی یک رمز عبور اضافی برای کلید SSH خود تنظیم کنی. این رمز عبور باعث میشود که حتی اگر کسی به فایل کلید خصوصی شما (مثلاً id_rsa) دسترسی پیدا کند، بدون این رمز نتواند از آن استفاده کند. ما معمولا نمیزاریم .
و در نهایت هم کلید های عمومی و خصوصی ساخته شده و در مسیر های زیر قرار میگیرند :
Your identification has been saved in /root/.ssh/id_rsa (Private Key)
Your public key has been saved in /root/.ssh/id_rsa.pub (Public Key)
حالا سیستم مبدا کلید های خودش رو داره .
نکته ی خیلی خیلی مهم ، کلید عمومی ، فقط و فقط روی همین سیستم میمونه ، ما اصلا بهش کاری نداریم ، اگر اشتباهی این کلید جایی کپی بشه ، داستانش گریبانگیرتون میشه . پس خیلی احتیاط کنید.
حالا با کمک کلید عمومی که تولید کردیم میتونیم به هر سرور لینوکسی دیگه ای که میخوایم SSH بزنیم و قرار هم نیست دیگه با هر بار SSH زدن ، پسوردش رو بزنیم وصل بشیم ، منتهی کافیه که این کلید عمومی رو بهش بدیم :
ssh-copy-id -i /root/.ssh/id_rsa.pub root@<Destination_IP>
و تمام ، فقط کافیه بعد از اجرا دستور بالا ، یکبار دیگه پسورد سرور مقصد رو بزنیم ، و بعد از این برای همیشه از شر زدن پسورد خلاص بشیم ، این دستور رو به ازای هر سرور مقصد دیگه ای که نمیخوایم دیگه با SSH زدن به آن ، پسورد بزنیم ، اجرا میکنیم .
برای وقتی که سیستم مبدا ویندوز هست ، از نرم افزار Putty Generate Key استفاده میکنیم که توضیح کاملش توی ویدیویی که لینکش رو گذاشتم هست.
YouTube
SSH Key Authentication | How to Create SSH Key Pairs
New to Cloud Computing? Get started here with a $100 credit → https://www.linode.com/lp/youtube-viewers/?utm_source=youtube&utm_medium=dev_advocacy&utm_content=sshauth_jl_10_27_24
There’s a good chance you’ve been using SSH (Secure Shell) to access your…
There’s a good chance you’ve been using SSH (Secure Shell) to access your…
👍4❤🔥1
تفاوت کلید خصوصی و عمومی
کلید عمومی و کلید خصوصی دو بخش اصلی یک سیستم رمزنگاری نامتقارن (مثل SSH) هستند. این سیستم به شکلی طراحی شده که امنیت ارتباطات را تضمین کند. حالا بیایید بفهمیم این کلیدها چی هستند و چه کار میکنند:
1. کلید خصوصی (Private Key):
چیست؟
کلیدی که باید فقط نزد خودت نگه داری و نباید با دیگران به اشتراک گذاشته شود.
کجا ذخیره میشود؟
معمولاً در مسیر ~/.ssh/id_rsa (در لینوکس/ویندوز) ذخیره میشود.
کاربرد:
این کلید برای باز کردن قفل اطلاعاتی که با کلید عمومی رمز شده است، استفاده میشود. همچنین برای احراز هویت به سرور استفاده میشود.
امنیت:
اگر کسی به کلید خصوصیات دسترسی پیدا کند، میتواند هویت تو را جعل کند، پس حتماً از آن بهخوبی محافظت کن.
2. کلید عمومی (Public Key):
چیست؟
کلیدی که میتوانی آن را به دیگران (مثلاً سرورها یا سرویسها) بدهی.
کجا ذخیره میشود؟
معمولاً در مسیر ~/.ssh/id_rsa.pub ذخیره میشود.
کاربرد:
این کلید به سرور یا سرویس مقصد داده میشود تا بتواند پیامهایی که با کلید خصوصی رمزگشایی میکنی را تأیید کند.
امنیت:
این کلید نیاز به محافظت خاصی ندارد، چون به اشتراک گذاشته میشود.
چطور کار میکنند؟
مرحله 1: کلید عمومیات را به سرور میدهی و در فایل ~/.ssh/authorized_keys سرور ذخیره میشود.
مرحله 2: وقتی میخواهی به سرور وصل شوی، سرور یک پیام (challenge) برایت میفرستد.
مرحله 3: کلید خصوصیات پیام را رمزگشایی میکند و جواب درست را به سرور برمیگرداند.
مرحله 4: سرور از طریق کلید عمومی بررسی میکند که آیا پاسخ صحیح است یا نه.
به زبان ساده:
کلید عمومی: مثل قفل درب خانهات که میتوانی به دوستانت بدهی تا با آن وارد شوند.
کلید خصوصی: مثل کلید اصلی خانه که فقط دست خودت است و نباید به کسی بدهی.
کلید عمومی و کلید خصوصی دو بخش اصلی یک سیستم رمزنگاری نامتقارن (مثل SSH) هستند. این سیستم به شکلی طراحی شده که امنیت ارتباطات را تضمین کند. حالا بیایید بفهمیم این کلیدها چی هستند و چه کار میکنند:
1. کلید خصوصی (Private Key):
چیست؟
کلیدی که باید فقط نزد خودت نگه داری و نباید با دیگران به اشتراک گذاشته شود.
کجا ذخیره میشود؟
معمولاً در مسیر ~/.ssh/id_rsa (در لینوکس/ویندوز) ذخیره میشود.
کاربرد:
این کلید برای باز کردن قفل اطلاعاتی که با کلید عمومی رمز شده است، استفاده میشود. همچنین برای احراز هویت به سرور استفاده میشود.
امنیت:
اگر کسی به کلید خصوصیات دسترسی پیدا کند، میتواند هویت تو را جعل کند، پس حتماً از آن بهخوبی محافظت کن.
2. کلید عمومی (Public Key):
چیست؟
کلیدی که میتوانی آن را به دیگران (مثلاً سرورها یا سرویسها) بدهی.
کجا ذخیره میشود؟
معمولاً در مسیر ~/.ssh/id_rsa.pub ذخیره میشود.
کاربرد:
این کلید به سرور یا سرویس مقصد داده میشود تا بتواند پیامهایی که با کلید خصوصی رمزگشایی میکنی را تأیید کند.
امنیت:
این کلید نیاز به محافظت خاصی ندارد، چون به اشتراک گذاشته میشود.
چطور کار میکنند؟
مرحله 1: کلید عمومیات را به سرور میدهی و در فایل ~/.ssh/authorized_keys سرور ذخیره میشود.
مرحله 2: وقتی میخواهی به سرور وصل شوی، سرور یک پیام (challenge) برایت میفرستد.
مرحله 3: کلید خصوصیات پیام را رمزگشایی میکند و جواب درست را به سرور برمیگرداند.
مرحله 4: سرور از طریق کلید عمومی بررسی میکند که آیا پاسخ صحیح است یا نه.
به زبان ساده:
کلید عمومی: مثل قفل درب خانهات که میتوانی به دوستانت بدهی تا با آن وارد شوند.
کلید خصوصی: مثل کلید اصلی خانه که فقط دست خودت است و نباید به کسی بدهی.
YouTube
Asymmetric Encryption - Simply explained
How does public-key cryptography work? What is a private key and a public key? Why is asymmetric encryption different from symmetric encryption? I'll explain all of these in plain English!
💌 Sign up for Simply Explained Newsletter:
https://newsletter.s…
💌 Sign up for Simply Explained Newsletter:
https://newsletter.s…
❤🔥5🔥3👍1
آموزش درست کردن بارکد در اکسل
ابتدا فونت پیوست زیر را دانلود و نصب کنید
بعد وارد اکسل بشید و در یک ستون مواردی که نیاز دارید به بارکد تبدیل بشه رو بنویسید .
در نهایت در ستون مقابل دستور زیر را وارد کنید :
="("&A1&")"
در واقع A1 آدرس ستون و سطری هست که انتخاب میکنید
و بعد اینتر کنید ، خروجی را انتخاب کرده و در قسمت فونت ها ، فونتی را که نصب کردید انتخاب کنید .
تمام ، حالا با یک دستگاه اسکنر یا بارکد خوان میتوانید آن را اسکن کنید.
ابتدا فونت پیوست زیر را دانلود و نصب کنید
بعد وارد اکسل بشید و در یک ستون مواردی که نیاز دارید به بارکد تبدیل بشه رو بنویسید .
در نهایت در ستون مقابل دستور زیر را وارد کنید :
="("&A1&")"
در واقع A1 آدرس ستون و سطری هست که انتخاب میکنید
و بعد اینتر کنید ، خروجی را انتخاب کرده و در قسمت فونت ها ، فونتی را که نصب کردید انتخاب کنید .
تمام ، حالا با یک دستگاه اسکنر یا بارکد خوان میتوانید آن را اسکن کنید.
👏5❤🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
توضیـحات تصویری برای تولید بارکد با اکسل !
❤🔥5👍2
This media is not supported in your browser
VIEW IN TELEGRAM
👇مزایای سیستمسازی👇
1. زمان بیشتر برای مدیر
وقتی کارها طبق سیستم پیش بره، مدیر کسب و کار زمان بیشتری برای خودش و کارهای مهمتر داره.
2. بهرهوری بیشتر
با داشتن یک روش مشخص، کارها سریعتر و بهتر انجام میشه.
3. کاهش اشتباهها
وقتی همه چیز رو به صورت منظم انجام بدی، اشتباهها کمتر میشه.
کپی شده از صفحه ی اینستاگرامی :
@tav.university
1. زمان بیشتر برای مدیر
وقتی کارها طبق سیستم پیش بره، مدیر کسب و کار زمان بیشتری برای خودش و کارهای مهمتر داره.
2. بهرهوری بیشتر
با داشتن یک روش مشخص، کارها سریعتر و بهتر انجام میشه.
3. کاهش اشتباهها
وقتی همه چیز رو به صورت منظم انجام بدی، اشتباهها کمتر میشه.
کپی شده از صفحه ی اینستاگرامی :
@tav.university
❤🔥3🔥3👍1
IT Guys👾
چرا Kubernetes دیگه از داکر استفاده نمیکنه؟ در واقع Kubernetes از نسخه 1.20 به بعد، دیگر به طور رسمی از Docker به عنوان Container Runtime پشتیبانی نمیکند، چون Docker به عنوان یک runtime با استاندارد CRI (Container Runtime Interface) سازگار نیست. این تصمیم…
در واقع Container Runtime نرمافزاریه که کار اجرای کانتینرها رو انجام میده. کانتینرها همون بستههای جمعوجوری هستن که شامل همهچیز (مثل کد برنامه، کتابخونهها و تنظیمات) برای اجرای یک برنامه هستن.
حالا این نرمافزار Container Runtime میاد و این کانتینرها رو مدیریت و اجرا میکنه. مثل اینه که شما یه ظرف غذا (کانتینر) داشته باشید، ولی نیاز دارید یه دستگاه گرمکن (Container Runtime) داشته باشید که این غذا رو برای استفاده آماده کنه.
کانتینر چیه؟
یه کانتینر یه نوع "جعبه" یا محیط ایزولهشدهاس که برنامه، فایلهای لازم برای اجراش، و تنظیماتش رو داخل خودش داره. این جعبه طوری طراحی شده که بتونه روی هر سیستمی که Container Runtime نصب باشه، اجرا بشه.
حالا Container Runtime دقیقاً چیکار میکنه؟
درواقع Container Runtime نرمافزاریه که این وظایف رو بر عهده داره:
ساخت کانتینر: وقتی شما میگید "این برنامه رو اجرا کن"، Container Runtime میاد و یه کانتینر جدید از اون برنامه ایجاد میکنه.
اجرای کانتینر: Runtime میاد کانتینر رو داخل یه محیط ایزوله روی سیستم عامل اجرا میکنه، طوری که انگار اون کانتینر یه سیستم عامل مجزا داره.
مدیریت منابع: مطمئن میشه که کانتینرها بیش از حد از منابع سیستم (مثل CPU، RAM یا دیسک) استفاده نکنن.
شبکهسازی: به کانتینرها اجازه میده که به اینترنت یا به همدیگه وصل بشن.
حذف کانتینر: وقتی کار کانتینر تموم شد، Runtime میتونه کانتینر رو پاک کنه و منابع سیستم رو آزاد کنه.
مثال ملموس
فرض کن یه فیلم دانلود کردی و نیاز به یه پلیر خاص برای پخش اون فیلم داری. این پلیر مثل همون Container Runtime میمونه که وظیفهاش پخش فایل (کانتینر) شماست.
چه مدلهایی داریم؟
دو نوع کلی Container Runtime داریم:
دسته ی اول Low-level runtimes (پایهای): مثل runc، که کارهای خیلی اولیه مثل ایجاد محیط ایزوله و اجرای برنامهها رو انجام میده.
دسته ی دوم High-level runtimes (سطح بالاتر): مثل Docker یا Podman، که علاوه بر اجرای کانتینرها، ابزارهای جانبی مثل مدیریت، شبکهسازی، و ذخیرهسازی هم ارائه میدن.
چرا Container Runtime مهمه؟
چون این نرمافزار یه واسطه بین برنامهها (کانتینرها) و سیستمعامل اصلی هست. بدون اون ، اجرای کانتینرها امکانپذیر نیست. در واقع، Container Runtime تمام اون چیزایی که برای اجرای یه برنامه در یک محیط ایزوله لازم داری رو برات فراهم میکنه.
مثالهای معروف Container Runtime:
اول Docker: معروفترینه که همه اسمش رو شنیدن.
دوم containerd: یه لایه پایینتر از Docker کار میکنه.
سوم CRI-O: مخصوص Kubernetes طراحی شده.
به زبان ساده، Container Runtime مثل یه آشپزیه که میدونه چطوری مواد خام رو (کانتینر) به یه غذای آماده و قابلمصرف (برنامه در حال اجرا) تبدیل کنه!
حالا این نرمافزار Container Runtime میاد و این کانتینرها رو مدیریت و اجرا میکنه. مثل اینه که شما یه ظرف غذا (کانتینر) داشته باشید، ولی نیاز دارید یه دستگاه گرمکن (Container Runtime) داشته باشید که این غذا رو برای استفاده آماده کنه.
کانتینر چیه؟
یه کانتینر یه نوع "جعبه" یا محیط ایزولهشدهاس که برنامه، فایلهای لازم برای اجراش، و تنظیماتش رو داخل خودش داره. این جعبه طوری طراحی شده که بتونه روی هر سیستمی که Container Runtime نصب باشه، اجرا بشه.
حالا Container Runtime دقیقاً چیکار میکنه؟
درواقع Container Runtime نرمافزاریه که این وظایف رو بر عهده داره:
ساخت کانتینر: وقتی شما میگید "این برنامه رو اجرا کن"، Container Runtime میاد و یه کانتینر جدید از اون برنامه ایجاد میکنه.
اجرای کانتینر: Runtime میاد کانتینر رو داخل یه محیط ایزوله روی سیستم عامل اجرا میکنه، طوری که انگار اون کانتینر یه سیستم عامل مجزا داره.
مدیریت منابع: مطمئن میشه که کانتینرها بیش از حد از منابع سیستم (مثل CPU، RAM یا دیسک) استفاده نکنن.
شبکهسازی: به کانتینرها اجازه میده که به اینترنت یا به همدیگه وصل بشن.
حذف کانتینر: وقتی کار کانتینر تموم شد، Runtime میتونه کانتینر رو پاک کنه و منابع سیستم رو آزاد کنه.
مثال ملموس
فرض کن یه فیلم دانلود کردی و نیاز به یه پلیر خاص برای پخش اون فیلم داری. این پلیر مثل همون Container Runtime میمونه که وظیفهاش پخش فایل (کانتینر) شماست.
چه مدلهایی داریم؟
دو نوع کلی Container Runtime داریم:
دسته ی اول Low-level runtimes (پایهای): مثل runc، که کارهای خیلی اولیه مثل ایجاد محیط ایزوله و اجرای برنامهها رو انجام میده.
دسته ی دوم High-level runtimes (سطح بالاتر): مثل Docker یا Podman، که علاوه بر اجرای کانتینرها، ابزارهای جانبی مثل مدیریت، شبکهسازی، و ذخیرهسازی هم ارائه میدن.
چرا Container Runtime مهمه؟
چون این نرمافزار یه واسطه بین برنامهها (کانتینرها) و سیستمعامل اصلی هست. بدون اون ، اجرای کانتینرها امکانپذیر نیست. در واقع، Container Runtime تمام اون چیزایی که برای اجرای یه برنامه در یک محیط ایزوله لازم داری رو برات فراهم میکنه.
مثالهای معروف Container Runtime:
اول Docker: معروفترینه که همه اسمش رو شنیدن.
دوم containerd: یه لایه پایینتر از Docker کار میکنه.
سوم CRI-O: مخصوص Kubernetes طراحی شده.
به زبان ساده، Container Runtime مثل یه آشپزیه که میدونه چطوری مواد خام رو (کانتینر) به یه غذای آماده و قابلمصرف (برنامه در حال اجرا) تبدیل کنه!
🔥5❤🔥1👍1