Davit؛ رابط گرافیکی نیتیو مک برای کانتینر پلتفرم اپل
خلاصهٔ کاملتر
Davit یه اپ نیتیو برای مکه که مستقیم با دیمِن کانتینر متنبازِ اپل از طریق XPC حرف میزنه؛ همون مسیری که خود CLI استفاده میکنه. نکتهٔ کلیدیش اینه که نه Electron داره، نه ویو وب و نه ایجنت پسزمینهٔ خودش؛ کاملاً با SwiftUI ساخته شده.
از نظر قابلیت، Davit مدیریت کامل کانتینرها رو میده: استارت، استاپ، ریاستارت و حذف، با نمایش زندهٔ CPU و حافظه و IP روی هر ردیف، بهعلاوهٔ لاگ استریمی، نمودار زندهٔ آمار و بازبینی کانفیگ خام. میشه با یه کلیک یه شلِ تعاملی تو هر کانتینر در حال اجرا مستقیم تو Terminal یا iTerm باز کرد، اونم بدون نیاز به CLI.
چون کانتینرها تغییرناپذیرن، Davit یه قابلیت «ویرایش و بازسازی» داره که یه کانتینر جدید رو از روی کانفیگ قبلی پیشپر میکنه تا تو چند ثانیه پورتها، متغیرهای محیطی، مانتها یا منابع رو عوض کنی. مرورگر فایل داخل کانتینر هم داره تا بدون طلسمهای docker cp بشه فایلها رو دانلود، آپلود یا حذف کرد.
برای ورکفلوهای پیچیدهتر، میشه یه docker-compose.yml رو باز کرد و Davit دقیقاً نشون میده چی قراره بسازه: سرویسها بهترتیب وابستگی، والیومها، شبکهها، دستور معادل CLI هر سرویس و هشدار صادقانه برای هرچی پشتیبانی نمیشه؛ بعد کل استک رو با یه کلیک بالا میاره. ساخت ایمیج از Dockerfile هم هست که مستقیم بیلدرِ مبتنی بر BuildKit اپل رو میرونه. مدیریت ایمیج و والیوم و شبکه، لاگین به رجیستریها (با ذخیره تو کیچین و اشتراک با CLI) و تنظیمات قابلویرایش پلتفرم (که بهصورت TOML ذخیره میشن) هم از قابلیتهاشه. اگه اصلاً پلتفرم کانتینر نصب نباشه، Davit نصاب امضاشدهٔ اپل رو دانلود و راهاندازی میکنه، اونم بدون نیاز به دسترسی ادمین.
مهمترین بخش، تفاوتش با Docker Desktopه. اول اینکه موتورش خود اپله: هر کانتینر تو یه VM سبک جدا از طریق فریمورک Virtualization اپل اجرا میشه؛ با بوت زیرثانیه، IP جدا برای هر کانتینر و بهینه برای سیلیکون اپل. دوم، کاملاً سازگار با OCIه و ایمیجهای موجودت (از Docker Hub، ghcr.io، quay.io و رجیستریهای خصوصی) همینجوری کار میکنن. سوم، چیزی بین تو و دیمِن نیست؛ Davit کتابخانهٔ کلاینت خود اپل رو لینک میکنه و مستقیم XPC حرف میزنه، بدون شیم سوکت، توافقنامهٔ لایسنس یا حساب. چهارم، ردپای کوچیکی داره: یه باندل ۱۷ مگابایتی، بدون Electron و بدون سرویس پسزمینه.
نکتهٔ معماریای که تو بخش پرسشها تأکید میشه اینه که هیچ VM لینوکسیِ چندگیگی همیشهروشنی وجود نداره. Docker Desktop یه VM بزرگ رو چه کانتینر داشته باشی چه نداشته باشی روشن نگه میداره، ولی پلتفرم اپل بهجاش برای هر کانتینر یه VM سبکِ اندازهشده بوت میکنه و بعد از توقفش جمعش میکنه؛ وقتی هیچی در حال اجرا نباشه سرویسهای پسزمینه حدود ۲۵ مگابایت بیکار میمونن.
در مقایسه با OrbStack، متن اینطور صادق بوده که اگه OrbStack برات کار میکنه، برای سرعت جابهجا نمیشی چون خودش عالیه و طراحی VM اشتراکیش خیلی سریعه؛ ولی موتورها فرق دارن. OrbStack یه اپ تجاری با لایهٔ مجازیسازی سازگار با داکرِ خودشه، در حالی که Davit یه رابط رایگان و متنباز (MIT) روی پلتفرم خود اپله؛ با VM جدا برای هر کانتینر، ایزولهسازی قویتر و بدون لایسنس یا حساب. در عوض OrbStack تو سازگاری drop-in با CLI/API داکر و پشتیبانی ابزارهای گستردهتر بهتره. هر دو ایمیجهای استاندارد OCI رو اجرا میکنن. Davit هم امضاشده و نوتارایزشدهٔ اپله و بدون هشدار Gatekeeper باز میشه.
نکات کلیدی:
- Davit یه اپ نیتیو SwiftUIه که مستقیم با دیمِن کانتینر متنباز اپل از طریق XPC حرف میزنه
- مدیریت کانتینر، ترمینال داخل کانتینر، مرور فایل، ایمپورت compose و بیلد از Dockerfile داره
- برخلاف Docker Desktop، هر کانتینر تو یه VM سبک جدا اجرا میشه، نه یه VM لینوکسی همیشهروشن
- سازگار با OCI؛ ایمیجها و رجیستریهای موجودت همینجوری کار میکنن
- باندل فقط ۱۷ مگابایتیه و بدون کانتینر، پسزمینه حدود ۲۵ مگابایت مصرف میکنه
- متنباز (MIT)، امضا و نوتارایزشدهٔ اپل، بدون نیاز به دسترسی ادمین برای نصب




