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

ویژگیContainerVirtual Machine
Kernelمعمولاً مشترک با میزبانKernel مهمان مستقل
شروع اجرااغلب سریع‌ترمعمولاً سنگین‌تر
مرز ایزولاسیونوابسته به Kernel و پیکربندیعموماً جداسازی سخت‌تری ارائه می‌دهد
نمونه ابزارDocker، PodmanKVM، Hyper-V

دقت در اصطلاح

Service Container در لاراول برای ساخت آبجکت و مدیریت وابستگی است و ربط مستقیمی به اجرای پردازش لینوکسی در کانتینر ندارد. برای آن مفهوم، صفحه سرویس کانتینر را ببینید.

اصطلاحات مرتبط: سرویس کانتینر، داکر، داکر انجین، کانتینرسازی، کوبرنتیز، ایمیج داکر.