در وینوز خبیث چگونه داکر که یک linux container هستش اجرا میشه؟
قبل از 2016:
در ابتدا، Docker فقط برای Linux طراحی شده بود و روی Windows قابل اجرا نبود
🫠. در آن زمان، توسعهدهندگان Windows برای استفاده از Docker مجبور بودند:
1. یا از یک ماشین مجازی Linux جداگانه استفاده کنند
2. یا از ابزارهایی مثل VirtualBox استفاده کنند
3. یا تصمیم عاقلانه میگرفتن لینوکسی میشدن
2016 - معرفی Docker for Windows:
در سال 2016، Docker یک راهکار رسمی برای Windows ارائه کرد که شامل دو بخش اصلی بود:
1.
Docker Desktop for Windows:
- یک نرمافزار یکپارچه که شامل تمام اجزای مورد نیاز برای اجرای Docker بود
- از Hyper-V (مجازیساز رسمی Microsoft) استفاده میکرد
- یک Moby VM (ماشین مجازی سبک Linux) را به صورت خودکار مدیریت میکرد
2.
معماری دو لایه:
-
لایه Windows: شامل Docker Client که رابط کاربری و CLI را در اختیار کاربر قرار میداد
-
لایه Linux (Moby VM): شامل Docker Daemon که مسئول اصلی مدیریت کانتینرها بود
نحوه کار:
1. کاربر در Windows دستورات Docker را اجرا میکند
2. Docker Client
این دستورات را به Moby VM منتقل میکند
3. Docker Daemon
در Moby VM دستورات را پردازش کرده و کانتینرها را مدیریت میکند
4. تمام کانتینرهای Linux در این VM اجرا میشوند و از kernel آن استفاده میکنند
مزایای این معماری:
- کانتینرهای Linux دقیقاً مثل Linux اصلی کار میکنند
- مدیریت منابع بهتر و کارایی بالاتر نسبت به استفاده از VirtualBox
- یکپارچگی بهتر با Windows
- نصب و راهاندازی سادهتر
تغییرات بعدی:
بعد از 2016، Docker قابلیتهای جدیدی اضافه کرد:
1.
Windows Containers:
امکان اجرای کانتینرهای native ویندوزی
2.
WSL2 Integration:
یکپارچگی با Windows Subsystem for Linux نسخه 2
3.
Hyper-V Isolation:
لایه امنیتی اضافه برای جداسازی بهتر کانتینرها
در نمودار بالا هم دقیقاً همین معماری نشان داده شده:
- سمت چپ: محیط Windows که Docker Client در آن قرار دارد
- سمت راست: Moby VM که Docker Daemon و کانتینرهای Linux را میزبانی میکند
- ارتباط بین این دو از طریق یک پروتکل شبکه انجام میشود
توضیحات مایکروسافت خبیث
#docker
@Syntax_fa