سلام خوانندگان عزیز! امروز با شور و شوق در مورد موضوع هیجان انگیزی که موجب هیجان در دنیای Docker شده است، شروع به بحث کردم. این مطلب معمولی شما درباره ی ارکستر یا optimize file Docker نیست، بلکه در مورد ابزاری کوچک اما مهم است که می تواند کارایی و قابلیت اعتماد صندوق های Docker شما را به شدت بهبود بخشد.
Dumb-Init، یا فقط ’ dumb-init’، یک سیستم ورودی است که پردازش پی دی ۱ سنتی را در یک جعبه جایگزین می کند. این سیستم توسط یلپ برای مقابله با برخی از مشکلات موجود در پروژه های جعبه ای خودشان طراحی شده است. مسئله اصلی این بود که وقتی PID ۱ جعبه ای بمیرد خود جعبه هم خارج می شود و این باعث پایان های غیر منتظره و از دست رفتن وضعیت می شود.
این مشکل با اطمینان از اینکه حتی اگر برنامه داخل جعبه بمیرد، دام اینتیت زنده می ماند. این کار را با حذف هیچ فرایندی انجام می دهد و به این ترتیب استفاده از منابع را به حداقل می رساند.
یکی از این دو پاسخ این است که چرا ما به یک سیستم عامل دیگر نیاز داریم در حالی که سیستم های سنتی مثل سیستم های سیستمی و تازه کار وجود دارد. پاسخ این سیستم در محیط منحصر به فرد Docker نهفته است. در سیستم های سنتی، روندها در داخل یک میزبان زندگی می کنند، اما در Docker در داخل صندوق ها زندگی می کنند و این امر پیچیدگی های بیشتری ایجاد می کند.
برای مثال باید به یک سناریوی عملی توجه کنیم: شما یک برنامه وب جعبه ای دارید که شامل یک قسمت جلو و یک قسمت عقب است. اگر قسمت جلو بمیرد، جعبه خراب می شود و باعث می شود قسمت جلو هم از کار بیفتد. با سیستم عامل دام اینتیت، حتی اگر قسمت جلو بمیرد، جعبه زنده می ماند و به قسمت جلو اجازه می دهد تا زمانی که به صورت دستی تمام شود.
علاوه بر این، دام اینتیت یک مسئله مشابه دیگر را نیز حل می کند: پخش سیگنال. در سیستم های سنتی ورودی، وقتی سیگنالی به PID ۱ فرستاده می شود، این سیگنال به تمامی فرایندهای کودک منتقل می شود. اما در سیستم های Docker، این سیگنال ها ممکن است به دلیل کارکرد namespaces و گروه های پردازنده گم شوند. دام اینتیت این مشکل را با مدیریت موثرتری در مدیریت پخش سیگنال حل می کند.
دابلین اینتی همچنین برخی از خصوصیات مفید را فراهم می سازد:
۱. وقتی که جعبه ای دوباره روشن می شود، به صورت خودکار تنظيمات TTY را باز می گرداند تا مطمئن شود تماس های کاربری درست انجام می شود. ۲. این برنامه ی ورودی سیستم عامل را حمایت می کند و به شما امکان می دهد که با استدلال های خاص یا متغیرهای محیطی برنامه تان را اجرا کنید. ۳. این برنامه می تواند با ابزارهای دیگری مثل ناظر و سیستم دیجیتال برای تجهیزات پیچیده تری استفاده شود.
در پایان، داماینت ابزاری قدرتمند است که بر مشکلات معمولی دنیای containers Docker پاسخ می دهد. با تضمین پایداری container حتی وقتی که پروژه مورد نظر در حال مرگ است، این ابزار پایه قابل اعتماد و قدرتمندی برای پروژه های شما فراهم می کند. چه طراح باشی، چه اپراتور، چه مهندس DevOps، درک و استفاده از داماینت می تواند به طور معنی داری تجربه Docker شما را بهبود بخشد.
همیشه به شما تشویق می کنم که این ابزار را در پروژه های خودتان کشف کنید و تجربه هایتان را با جامعه درمیان بگذارید.