الدرس 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) (تشبيه)
- أنت (العميل): ترسل التعليمات لبدء حاوية.
- الخفي (المحرك): يستلم التعليمات.
- الخفي (إدارة الصور): يتحقق من التخزين المحلي بحثاً عن الصورة المطلوبة.
- الخفي (التفاعل مع السجل): إذا لم يتم العثور عليها، يسحب الصورة من Docker Hub.
- الخفي (إدارة الحاويات): ينشئ ويبدأ نسخة حاوية جديدة بناءً على الصورة.
تضمن هذه المعمارية أن إدارة الحاويات والصور مفصولة عن واجهة المستخدم، مما يوفر الكفاءة وقابلية التوسع.