داکر کانتینر یا کانتینر Container چیست؟
کانتینر یک تکنولوژی مجازیسازی است که به برنامهها امکان اجرا و ارتقاء را در یک محیط عایقشده فراهم میکند. این محیط عایقشده کانتینر نامیده میشوند و تمام وابستگیها و مؤلفههای مورد نیاز برنامه را در خود جای داده و از سیستم عامل و نرمافزارهای موجود در میزبان (سیستم اصلی که کانتینر اجرا میشود) جدا میشوند.
از مزایای استفاده از کانتینرها عبارتند از:
قابل حمل بودن : کانتینرها به عنوان یک بسته نرمافزاری قابل حمل و قابل اجرا در هر محیطی طراحی و قابلیت اجرا دارند . این به توسعهدهندگان اجازه میدهد که برنامههای خود را بدون نگرانی از تفاوتهای محیطهای اجرایی انتقال دهند. به عنوان مثال من می توانم یک برنامه به زبان Microsoft MVC Core در کانتینر ویندوزی بنویسم و بعد از اتمام در کانتینرهای لینوکسی محیط مشتری اجرا و تحویل دهم
ایزوله سازی : کانتینرها به برنامهها اجازه میدهند در یک محیط عایقشده اجرا شوند، به این ترتیب مسائل تداخل با سایر برنامهها یا تغییرات در سیستم عامل به حداقل میآید. همچنین ایزوله سازی نگرانی های اولیه برای امنیت را از بین می برد . البته موضوع امنیت نیازمند توضیحات بیشتر است.
سهولت مدیریت : ایجاد، مدیریت، و ارتقاء کانتینرها سادهتر از نصب و پیکربندی برنامهها بر روی سیستمهای مختلف است. از این رو، این تکنولوژی به توسعهدهندگان و مدیران سیستم کمک میکند. با یک مثال موضوع را باز می کنیم . فرض کنید ما قصد راه اندازی یک وب سایت بر مبنای وردپرس را داشته باشیم . برای این کار ابتدا باید یک ماشین مجازی لینوکسی ساخته شود . پس از آن باید پکیج php نصب شود . همچنین نیاز به نصب یک وب سرویس مثل nginx و یک دیتابیس مثل mysql داریم . که هر کدام از این موارد به غیر از نصب نیاز به پیکربندی دارند و در نهایت CMS وردپرس را دانلود و بر روی ماشین مجازی راه اندازی کنیم (البته اگر شما در سازمان دولتی یا خصوصی با بروکراسی خاصی کار می کنید , زمان گرفتن تاییده برای ساخت ماشین مجازی و نصب سایر موارد را باید به آن اضافه کنید) .
اما اگر از کانتینر ها استفاده کنیم , فقط باید ایمیج کامل وردپرس را دانلود و اجرا کنیم (به همین سادگی . به همین خوشمزگی!!!)
انعطافپذیری : کانتینرها میتوانند به سرعت بهروز شوند، و این امکان را فراهم میکنند که برنامهها به سرعت در محیط توسعه، آزمون، و تولید بهروز شوند.
در کل، کانتینرها به توسعهدهندگان اجازه میدهند تا برنامههای خود را به صورت مؤثرتر، قابل اطمینانتر، و سریعتر ارتقاء داده و اجرا کنند.