جواب کوتاه: چون میخواهید به عنوان یک کاربر، بتوانید نرم افزارهای گوناگون را خیلی راحت و سریع نصب کنید. همچنین اگر برنامه ساز هستید نیاز دارید برنامه شما توسط کاربران به آسانی قابل اجرا باشد.
جواب بلند: شیوه قدیمی/فعلی نصب بسیاری از نرم افزارها به این صورت است که شما ابتدا باید بسته (package) نرم افزاری مورد نظرتان را برای سیستم عامل خودتان، مثلا به صورت یک Installer برای ویندوز یا بسته RPM برای RedHat Linux، پیدا کنید و سپس باید مطمئن شوید که پیش نیازهای لازم برای آن را نصب کرده اید و تنها پس از آن است که میتوانید اقدام به نصب کنید.
البته در بیشتر موارد داستان به همین جا ختم نمی شود. احتمال دارد شما برنامه ای از قبل روی سیستمتان داشته باشید که با این برنامه جدید تداخل کند. محتمل ترین حالت وجود نسخه قدیمی تری از همین برنامه است که نیاز دارید ابتدا آن را از روی سیستم حذف کنید. حذف کردن برنامه ها هم در برخی موارد کار ساده ای نیست و ممکن است حتی پس از حذف یک برنامه نیاز داشته باشید بخشهایی از آن را که بر روی سیستم شما باقی مانده است تک تک پیدا کرده و پاک کنید تا تداخل کاملا برطرف شود. در این قبیل موارد تغییرات در فایلهای سیستمی معمولا بیشترین دردسر را ایجاد میکند چون به نوعی میتوان گفت سیستم شما را آلوده کرده است و برگرداندن آن به وضعیت قبلی کار آسانی نیست.
مشکل بزرگتر زمانی پیش میاید که برنامه جدید با یکی از برنامه های موجود تداخل میکند ولی شما به هر دوی آنها نیاز دارید. مثالهای معروف آن نصب نسخه های متفاوتی از ابزارهای یک زبان برنامه نویسی است. مثلا برای داشتن نسخه های متفاوتی از ruby به صورت همزمان روی یک سیستم به مشکل برخواهید خورد و نیاز دارید از یک برنامه دیگر به نام rvm استفاده کنید. متاسفانه برای بیشتر بسته های نرم افزاری چنین امکانی اصلا وجود ندارد و شما باید تنها یک نسخه را در هر زمان نصب کنید.
استفاده از ماشینهای مجازی (Virtual Machine) تا حدی میتواند در حل این مشکلات کمک کند ولی حجیم بودن و سرعت پایین نصب و راه اندازی مانع از همه گیر شدن این روش شده است. همچنین تمام برنامه هایی که روی یک ماشین مجازی خاص نصب میشوند همچنان در معرض این مشکلات قرار دارند.
داکر به عنوان یک ابزار روزمره این امکان را فراهم میکند که شما بدون نیاز به آلوده کردن سیستم خودتان هر نرم افزاری را که به صورت کانتینر ساخته شده باشد به سرعت و به صورت کاملا مجزا نصب و اجرا کنید. زمانی هم که به این کانتینر احتیاج نداشته باشید با حذف کردن آن تمامی آثار آن از سیستم شما پاک خواهد شد.
به این ترتیب مثلا شما میتوانید نسخه های متفاوتی از یک محصول را به صورت همزمان نصب و اجرا کنید بدون اینکه آنها از وجود یکدیگر با خبر شوند. سادگی و سرعت استفاده از کانتینرها نیز به مراتب بیشتر از ماشینهای مجازی است و همین امر باعث میشود استفاده از آنها در کار روزمره عملی تر باشد.
برای آشنایی بیشتر با این تکنولوژی میتوانید وبینار تاک با موضوع آشنایی مقدماتی با داکر را مشاهده کنید و اگر فکر میکنید که همین حالا به داکر نیاز دارید میتوانید به این ترتیب آن را روی ویندوز نصب کنید.
به عنوان یک برنامه ساز نیز ایده بسیار خوبیست که برنامه بعدیتان را به صورت یک کانتینر ارایه کنید تا دیگران بتوانند به راحتی آن را نصب و اجرا کنند. مثلا برای برنامه های تحت وب جاوا میتوانید به این روش آنها را در یک کانتینر قرار دهید.