بیتردید رابط خط فرمان Docker قدرتمند است. تنها محدودیت این است که با رشد کانتینرها، Docker میتواند احساس تکهتکه شدن بدهد. برای من، یک پنجره docker ps را اجرا میکند، دیگری لاگها را دنبال میکند و سومی منتظر docker exec -it میماند. کار را انجام میدهد، اما کمی پر سر و صداست. سختترین بخشهای آن تعویض مداوم زمینه، دوبارهتایپ نامهای کانتینر و فشار ذهنی مدیریت همه اینهاست.
بیتردید CLI داکر قدرتمند است. تنها محدودیت این است که با رشد کانتینرها، داکر میتواند احساس تکهتکه شدن کند. برای من، یک پنجره docker ps را اجرا میکند، پنجرهٔ دیگر لاگها را tail میکند و سومین پنجره منتظر docker exec -it است. کار را انجام میدهد، اما کمی پر سر و صداست. سختترین بخشها، سوئیچینگ مداوم زمینه، دوبارهتایپ کردن نامهای کانتینر و فشار ذهنی ناشی از مدیریت همهٔ اینها هستند.
از زمانی که از Ducker استفاده میکنم، بسیاری از تکهتکهگیها کاهش یافتهاند. این رابط کاربری ترمینالی مبتنی بر Rust برای داکر ساخته شده و صفحات ساختاریافتهای برای کانتینرها، ایمیجها، ولومها و شبکهها به من ارائه میدهد. پس از استفاده از ابزاری برای کاهش اندازهٔ کانتینرهای من، دریافت کردم که Ducker بهترین ابزار داکر بعدی است که تا به حال استفاده کردهام.

Ducker ابزاری رابط کاربری ترمینال است که با Rust نوشته شده و برای مدیریت کانتینرهای Docker، ایمیجها و ولومها طراحی شده است، با طرحی که از k9s الهام گرفته است.
لحظهای که Ducker کار میکند
وقتی متوجه میشوید که دیگر نیازی به باز نگه داشتن پنج فرمان Docker ندارید

وقتی جلسات توسعهٔ محلی دارم، میتوانم همزمان API، Redis، Postgres، یک worker و یک کانتینر فرانتاند را اجرا کنم. روش唯一 برای مدیریت این در گذشته استفاده از یک پنجرهٔ docker ps، پنجرهٔ جداگانه برای tail کردن لاگها و یک کانتینر docker exec -it بود. مشکل اصلی این است که اگر به مشکلی برخورد کنم، معمولاً بهصورت پراکنده ظاهر میشود، حتی اگر قابل مدیریت باشد.
روزی که ارزش Ducker را دیدم، روزی بود که متوجه شدم تمام این مؤلفهها میتوانند در یک صفحهٔ کانتینر نظارت شوند. من از j و k برای حرکت در لیست استفاده میکنم. Ducker همچنین گزینههای مرتبسازی بر اساس وضعیت یا زمان ایجاد را ارائه میدهد. بسیار کارآمد و بهراحتی قابل پیمایش است. فشار دادن l مرا به لاگها میبرد و با فشار دادن کلید Esc به لیست کانتینرها برمیگردم. این اطمینان میدهد که نیازی به تایپ نام یا شناسهٔ کانتینر ندارم؛ کلید a بر روی کیبوردم من را مستقیماً به شل کانتینر میبرد.
این یکی از منسجمترین ابزارهای Docker است که استفاده کردهام و یک حلقهٔ بازخورد تنگ دارد. در حالی که عادت کرده بودم به تفکر بر پایهٔ فرمانها، Ducker به من نشان داد که چقدر کارآمدتر است که بر پایهٔ اعمال بر روی اشیاء فکر کنم. این حلقه ساده و کارآمد بود: برجستهسازی، اقدام و بازگشت. نکتهٔ ضعف این است که عمل exec در Ducker فرض میکند bash موجود است، که برای ایمیجهای مینیمال که bash ندارند، شکست میخورد. با این حال، هنوز یک تغییر قابلتوجه در جریان کار ارائه میدهد.
ناوبری که احساس میشود برای افراد ترمینال ساخته شده است
حرکت و مرتبسازی به سبک Vim که حافظهٔ عضلانی را پاداش میدهد
پس از چند سال استفاده از ترمینال، وقتی ابزارهای جدید مرا به جریان کاری جدیدی مجبور نمیکنند، احساس راحتی میکنم و Ducker به همین سمت میگراید. با استفاده از پرامپت :، Ducker نوارهایی برای تایپ containers، images، volumes یا networks به من میدهد. این یکی از روانترین روشها برای جابجایی بین صفحات سطح بالا است. این موضوع مرا به یاد Vim، Tmux و برخی دیگر از ابزارهای لینوکس که برای چندوظیفهای استفاده میکنم میاندازد.
وقتی از j و k برای حرکت بالا و پایین استفاده میکنم، میتوانم با فشار دادن g به ابتدای صفحه برگردم یا با G مستقیماً به پایین بروم. اگرچه هیچکدام از اینها چشمکزن نیستند، اما در زمان مرور دهها کانتینر یا ایمیج، واقعیترین نجاتبخشها هستند. این یک ابزار جدیدی بود که امتحان میکردم و هرگز حس نمیکردم که با رابط کاربری درگیر هستم.
هنگامی که سعی کردم مرتبسازی کنم، حتی مفیدتر شد. پس از ورود به صفحهٔ Containers، با Shift + S بر اساس وضعیت، با Shift + C بر اساس زمان ایجاد و با Shift + N بر اساس نام مرتب میکنم. برای تغییر جهت صعودی یا نزولی، فقط کافی است همان کلید را دوباره فشار دهم. مرتبسازی بر اساس زمان ایجاد زمان زیادی را هنگام توسعه فعال برایم صرفهجویی میکند.
تمیز کردن Docker دیگر آزاردهنده نیست
ایمیجها، ولومها و منابع معلق قابل مشاهده میشوند

پس از مدتی استفاده از Docker، با ایمیجهای معلق، ولومهای استفاده نشده و شبکههای باقیمانده مواجه شدم. میتوانستم آنها را پاک کنم، اما مجبور به ردیابی دستی بودم و این کار حس کاری را داشت. فشار دادن Alt + d در صفحهٔ Images در Ducker ایمیجهای معلقم را تغییر وضعیت میدهد و بلافاصله آنهایی را که ایمن برای بررسی هستند میبینم. اگر بخواهم تصویر را توصیف کنم، کلید d را میزنم و وقتی راضی بودم، فشار دادن Ctrl + d آن را حذف میکند. بزرگترین تفاوت این روش با روش سنتی در Docker این است که دیگر نیازی به حدس زدن کدام شناسهٔ تصویر به چه چیزی مربوط است ندارم. اگر نیاز به شناسایی لینکهای ساخت سنگین داشته باشم، آنها را بر اساس اندازه مرتب میکنم. میتوانم همین الگو را برای مدیریت ولومها و شبکهها استفاده کنم. استفاده از کلیدهای ثابت برای این عملیات حافظهٔ عضلانی را بهبود میبخشد.
نصب آن بهقدر آسان است که ارزش امتحان را دارد
Cargo، مدیر بستهها و تست بدون تعهد

نصب Ducker سادهتر از آنچه انتظار داشتم بود. فقط کافی بود این دستور Cargo را اجرا کنم:
cargo install --locked ducker
عضویت در خبرنامه برای ابزارهای Docker و موارد بیشتر
مهم است که پرچم –locked را اضافه کنید تا تغییر وابستگیهای بالادستی باعث خراب شدن ساخت نشود. Cargo 1.88 یا بالاتر مورد نیاز است و چون در حال حاضر باینریهای پیشساختهای وجود ندارند، باید با ابزارهای Rust راحت باشید.
میتوانید مستقیم با pacman -S ducker در Arch این کار را انجام دهید و کاربران Homebrew میتوانند از brew install ducker استفاده کنند. من NixOS را دوست دارم زیرا رویکرد منحصر بهفردی به لینوکس دارد و حتی به شما اجازه میدهد که Ducker را بدون نصب دائمی با استفاده از nix run nixpkgs#ducker آزمایش کنید.

یک ابر میزبانیشده توسط خود شما بسیار آزادیبخش است و بهطور شگفتانگیزی سخت برای راهاندازی نیست.
پیکربندی، تمسازی و جزئیات کوچک که احساس بومی بودن میدهند
اگر در ترمینال زندگی میکنید، با استفاده از Ducker احساس خانه بودن خواهید کرد. از ابتدا، با تنظیمات پیشفرضی که بسیار کارآمد هستند ارائه میشود؛ گزینههایی برای سفارشیسازی شِلها، سوکتهای Docker و رفتار تکمیل خودکار دارید. اگر تمایل به تنظیم دقیق محیط پیشفرض دارید، گزینهای برای تمسازی وجود دارد. Ducker جزئیات ریز را برای کسی که روزانه از ابزار استفاده میکند نادیده نمیگیرد و بهگونهای ساخته شده است که عملی و لذتبخش باشد.