العودة إلى الدورة

الدرس 1: ما هو تغليف التطبيقات (Containerization) ولماذا Docker؟

Docker من الصفر إلى الاحتراف: الدورة الشاملة لتغليف التطبيقات (Containerization) للمبتدئين

الدرس 1: ما هو تغليف التطبيقات (Containerization) ولماذا Docker؟

المشكلة التي يحلها Docker: 'إنه يعمل على جهازي!'

قبل Docker، غالباً ما واجه المطورون المشكلة المحبطة حيث يفشل الكود الذي يعمل بشكل ممتاز على أجهزتهم المحلية في بيئات الاختبار أو الإنتاج. يحدث هذا عادةً بسبب الاختلافات في أنظمة التشغيل، التبعيات (dependencies)، إصدارات المكتبات، أو إعدادات البيئة.

تقديم مفهوم تغليف التطبيقات (Containerization)

تغليف التطبيقات هو حل يقوم بتغليف تطبيق ما وجميع تبعياته (المكتبات، الأُطر، ملفات الإعداد) في وحدة قياسية تسمى الحاوية (container). يمكن لهذه الحاوية بعد ذلك أن تعمل بشكل متسق على أي بيئة (التطوير، التدريج، الإنتاج) تدعم الحاويات.

الآلات الافتراضية (VMs) مقابل الحاويات

FeatureVirtual Machines (VMs)Docker Containers
العزلعالٍ (نواة نظام تشغيل كاملة)متوسط (نواة نظام تشغيل مضيف مشتركة)
نظام التشغيلكل VM يتطلب نظام تشغيل ضيف خاص بهتشترك الحاويات في نظام التشغيل المضيف
الحجمجيجابايت (ثقيل)ميجابايت (خفيف الوزن)
وقت البدءدقائقثوانٍ أو أجزاء من الثانية

حاويات Docker أخف وأسرع بكثير لأنها لا تحمل الحمل الزائد لنظام تشغيل كامل.

المزايا الرئيسية لـ Docker

  1. الاتساق: البيئات متطابقة في كل مكان.
  2. العزل: التطبيقات معزولة عن بعضها البعض.
  3. قابلية النقل: تعمل الحاويات بنفس الطريقة على أي مضيف (Windows, Mac, Linux).
  4. الكفاءة: استهلاك أقل للموارد مقارنة بالآلات الافتراضية (VMs).

مصطلحات Docker الأساسية (نظرة مسبقة)

  • Image (الصورة): قالب للقراءة فقط يستخدم لإنشاء الحاويات. يحتوي على التطبيق وجميع الملفات الضرورية.
  • Container (الحاوية): نسخة قيد التشغيل من الصورة (image).
  • Dockerfile: سكريبت يستخدم لتحديد كيفية بناء الصورة.
  • Registry (السجل) (Docker Hub): مستودع عام أو خاص لتخزين ومشاركة الصور.