Container یا کانتینر در سیستمعامل و داکر محیط ایزولهای برای اجرای یک یا چند پردازش است. کانتینر بر خلاف ماشین مجازی معمولی سیستمعامل مهمان کامل با Kernel مستقل بوت نمیکند و معمولاً Kernel میزبان را با محدودیتهای مشخص به اشتراک میگذارد.
کانتینر در لینوکس از چه ساخته شده است؟
| مفهوم | کاربرد |
|---|---|
| Namespaces | جداسازی نماهایی مانند PID، Mount، Network و User |
| Cgroups | کنترل و حسابداری CPU، RAM و منابع |
| Container Image | فایلسیستم و متادیتای اجرایی بستهبندیشده |
| OCI Runtime | راهاندازی پردازش کانتینری مانند runc |
| Container Engine | مدیریت ساخت، اجرا، شبکه و Image مانند Docker Engine |
Namespace و Cgroup عناصر جداسازی هستند، اما کانتینر مرز امنیتی مطلق نیست. پیکربندی مجوزها، Capabilities، Seccomp، AppArmor و تنظیمات شبکه اهمیت دارد.
نمونه اجرا و مشاهده محدودیت منابع
docker run -d --name worker --memory=256m --cpus=0.5 alpine:3.21 sh -c "sleep 120"
docker inspect worker
docker rm -f worker
تفاوت کانتینر و VM
| ویژگی | Container | Virtual Machine |
|---|---|---|
| Kernel | معمولاً مشترک با میزبان | Kernel مهمان مستقل |
| شروع اجرا | اغلب سریعتر | معمولاً سنگینتر |
| مرز ایزولاسیون | وابسته به Kernel و پیکربندی | عموماً جداسازی سختتری ارائه میدهد |
| نمونه ابزار | Docker، Podman | KVM، Hyper-V |
دقت در اصطلاح
Service Container در لاراول برای ساخت آبجکت و مدیریت وابستگی است و ربط مستقیمی به اجرای پردازش لینوکسی در کانتینر ندارد. برای آن مفهوم، صفحه سرویس کانتینر را ببینید.
اصطلاحات مرتبط: سرویس کانتینر، داکر، داکر انجین، کانتینرسازی، کوبرنتیز، ایمیج داکر.