الحاويات (بالإنجليزية: container) في هندسة البرمجيات هي محاكاة افتراضية على مستوى نظام التشغيل أو محاكاة افتراضية على مستوى التطبيق عبر موارد شبكة متعددة بحيث يمكن تشغيل تطبيقات البرمجيات في مساحات مستخدم معزولة تسمى الحاويات في أي بيئة سحابية أو غير سحابية، بغض النظر عن النوع أو البائع، وهي توفر وسيلة لتشغيل التطبيقات بشكل مستقل ومحمول، بحيث تحتوي كل حاوية على جميع العناصر التي تحتاجها لتشغيل التطبيق، بما في ذلك ملفات النظام والمكتبات والأكواد. هذا يسمح للتطبيقات بالعمل في بيئات مختلفة دون الحاجة لإعادة التكوين، مما يقلل من مشاكل التوافق ويعزز الكفاءة.
على عكس الآلات الافتراضية (virtual machines)، التي تتطلب نظام تشغيل كامل لكل تطبيق، تستفيد الحاويات من نواة النظام الأساسي وتشاركها بين التطبيقات، مما يجعلها أخف وأسرع في التشغيل. حيث يمكن لكل حاوية أن تعمل بشكل منفصل، حتى وإن كانت التطبيقات تستخدم مكتبات أو نسخًا مختلفة من نفس الملفات.
بفضل مرونتها، تستخدم الحاويات على نطاق واسع في تطوير ونشر التطبيقات الحديثة، خاصة في البنية القائمة على الخدمات الصغيرة (microservices architecture). تُمكّن هذه التقنية المطورين من تقسيم التطبيقات الكبيرة إلى وحدات صغيرة يمكن تشغيلها وتحديثها بشكل مستقل، مما يساهم في تحسين سرعة التطوير واستقرار النظام ككل.
ومع ذلك، نظرًا لأن تعريف "الحاويات" قد يختلف بين الخبراء، ينصح مارك بروكر بالاتفاق على تعريف محدد عند مناقشة الحاويات لضمان فهم مشترك للمصطلح واستخدامه بشكل صحيح بين أفراد الفريق أو الجمهور.