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

الدرس 3: شرح معمارية Docker

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

الدرس 3: شرح معمارية Docker

يعد فهم مكونات Docker أمراً بالغ الأهمية لاستكشاف الأخطاء وإصلاحها والاستخدام المتقدم.

يعمل Docker باستخدام معمارية العميل والخادم (client-server). يتحدث العميل إلى الخفي (الخادم/daemon)، الذي يقوم بالمهام الصعبة.

1. عميل Docker (CLI)

  • هذه هي الطريقة الأساسية التي يتفاعل بها المستخدمون مع Docker.
  • إنها أداة سطر أوامر (docker).
  • يرسل العميل الأوامر (مثل docker run, docker build, docker pull) إلى خفي Docker.
  • يمكنه التواصل مع الخفي محلياً أو عن بعد.

2. خفي Docker (المحرك)

  • مكون الخادم، ويسمى غالباً dockerd.
  • يقوم بإدارة كائنات Docker: الصور (images)، الحاويات (containers)، الشبكات (networks)، والمجلدات (volumes).
  • يستمع لطلبات API من العميل.
  • تتضمن المسؤوليات الرئيسية ما يلي:
    • بناء الصور.
    • تشغيل، إيقاف، وإدارة الحاويات.
    • التعامل مع تخزين الصور والشبكات.

3. سجلات Docker (Docker Registries)

  • السجل هو موقع مركزي يتم فيه تخزين صور Docker.
  • Docker Hub هو السجل العام الافتراضي.
  • عندما تقوم بتشغيل docker pull nginx، يسحب Docker صورة Nginx من Docker Hub.
  • عندما تقوم بتشغيل docker push، فأنت ترسل صورتك المخصصة إلى سجل.

تدفق أمر (docker run) (تشبيه)

  1. أنت (العميل): ترسل التعليمات لبدء حاوية.
  2. الخفي (المحرك): يستلم التعليمات.
  3. الخفي (إدارة الصور): يتحقق من التخزين المحلي بحثاً عن الصورة المطلوبة.
  4. الخفي (التفاعل مع السجل): إذا لم يتم العثور عليها، يسحب الصورة من Docker Hub.
  5. الخفي (إدارة الحاويات): ينشئ ويبدأ نسخة حاوية جديدة بناءً على الصورة.

تضمن هذه المعمارية أن إدارة الحاويات والصور مفصولة عن واجهة المستخدم، مما يوفر الكفاءة وقابلية التوسع.