هو عبارة عن محرك مفتوح المصدر، يساهم بشكل عام في تطوير التطبيقات، حيث يوفر بيئة منفصلة عن البيئة الأساسية لتجربة التطويرات والتطبيقات أو المختبرات عليها،،
اعتمد المطورين على نموذج الحاويات Containers، بحيث توفر لك هذه الخدمة بتشغيل التطبيق وعزله عن بقية التطبيقات دون المساس بالبنية التحتية للتطبيق عامتا،،
من خلال هذه المنهجية وفر هذا المحرك بيئة ملائمة للمطورين بحيث يمكنهم العمل في بيئة واحدة محلية مع حاويات مختلفة لتجريب التطويرات المختلفة ومواصلة دورة التطوير، دون التسبب
في خلل أو … على مستوى البنية التحتية عامتا،، أي إن حدث وقام أحد المبرمجين باضافة برمجة خاطئة في الحاوية، فهذا لن يؤثر على بيئة العمل ولن يمس البنية التحتية للنظام،،
وبهذا خفف على المطور مشكل خطأ بسيط قد يوقف عمل النظام بشكل عام … الخ،،
لكن ما علاقة كل هذا بالشبكات ؟
المحرك بحد ذاته يمكن استعماله في جهاز واحد، أو إعتماده في شبكة محلية أو عامة لتوفير التطبيق البرمجي الملائم للمستخدم،،
أي أن هذا المحرك يسهل على المطورين التواصل فيما بينهم عن طريق استعمال النوافذ والخدمات الملائمة عبر الشبكة في السيرفر العام.
اي بعبارة أخرى : بدل أن يقوم مشرف الشبكة بانشاء سيرفر، وتنصيب النظام العام في السيرفر، وفتح لكل مطور عضوية في السيرفر، واعطاءه مجموعة من التصريحات ليستطيع تطوير النظام،،
والعمل دائما على انشاء صورة حية كنظام احتياط في كل دقيقة أو ساعة أو … يعتمد تقنية هذا المحرك ويوفر على نفسه العديد من الخطوات في محرك واحد آمن إلى حد ما.
ومن أجمل ما تقدمه الحاويات: القدر على نقل الحاوية من مطور إلى آخر، أين توفر لهم بيئة مميزة لا يحتاج فيها المطور لتنصيب كل البرامج الأساسية المطلوبة لتشغيل التطبيق أو البرنامج،،
هيكل المحرك Docker :
يعتمد محرك Docker على نظام الخادم والزبون أي Client-Server .
يتصل الزبون بالخادم عن طريق نظام الخدمات Docker-daemon، الذي يمكن اعتبار أنه قلب الوظيف جمعاء، حيث يقوم بأغلب العمليات كـبناء، تشغيل، تعديل، نقل، حاوية … الخ،
وبما أنه يعتمد على نظام الخادم والزبون، فإنه في ذاته يوفر لك القدرة على التعامل مع الحاويات محليا أو عن طريق الاتصال بخادم في مكان مغاير عبر الانترنت أو الشبكة المحلية،،
أقصد هنا يمكن استعمال الحاويات مباشرة في حاسوبك، أو الاتصال بخادم وفره مسؤول الشبكات،،
من جماليات طريقة الاتصال بين الخادم والزبون، الاعتماد على نظام REST API ،، وهذا نظام يوفر تواصل خفيف ورسائل جد بسيطة بين الطرفين لتسهيل وتسريع العمليات فيما بينهما،،
نظام الخدمات Docker Daemon:
dockerd، يبقى في حالة التنصت بانتظار طلبات الخدمات أو أوامر تنفيذية من طرف الزبون،، مع العلم يمكن للخادم توفير خدمة التواصل مع خوادم أخرى، مثلا الاتصال بخادم رئيسي
في الخادم المركزي للشركة أو ….الخ
نظام الزبون docker:
docker ، هو الطريقة الأولية لتعامل مع المحرك عامتا، فمثلا يمكن استعمال الأمر: docker run ،، لتشغيل حاوية معينة
سجلات docker:
يقوم نظام السجلات بتخزين الصور اي docker image، وفي هذه الحال يوجد نوعين:
السجل العام المفتوح في الموقع الرسمي للعامة، والسجل الخاص الذي ينقسم لنوعين أيضا، الأول هو الذي يتم توفيره في الخادم المركزي من طرف مسؤول الشبكة، والثاني
الذي يقوم المطور باعداده فيه حاسوبه محليا،،
وهنا يأتي دور كل من pull و push التي بدورها تعني:
docker pull: هو عبارة عن أمر يقوم بجلب الصورة المطلوبة من أجل توفيرها للتشغيل،،
docker push: هو عبارة عن أمر لارسال الصورة المحلية الى المركز المعني،،
يتصل هذان الأمران مع السجل الذي يتم اعداده في البداية من طرف المسؤول أو المبرمج،،
الحاويات Containers:
هي عبارة عن صورة قابلة للتشغيل،، وتوفر خاصية التشغيل في شبكة واحدة أو شبكات مختلفة،،
ويتم انشاءها من خلال الاستعانة بالصورة مع اضافة بعض العناوين مثل نافذة الحاوية أو نوافذ الحاوية أو شبكة أو شبكات الحاوية،،
وجميلها انها منفصلة تماما على بقية الحاويات والجهاز بذاته، أي أن العطل الذي قد يقع سيحدث في الحاوية فقط دون التأثير على النظام أو ….
الصور Images:
هي عبارة عن قالب للقراءة فقط أي Template تحتوي مجموعة من التعليمات لإنشاء حاوية، وفي معظم الأوقات تكون صور مبنية على صور أخرى،،
فمثلا يمكن للصورة أن تكون عبارة عن توزيعة Debian تم تنصيب عليها خادم ويب كـApache ومستلزماته مثلا كـPhpmyadmin و Mysql و PHP، وتتوفر على تطبيقك مباشرة،،
وفي هذه الحال عند استعمال الصورة من طرف شخص آخر أو في جهاز آخر، اعادة تنصيب جميع الأدوات و…. غير مطلوب لأن الصورة توفر كل شيء،، حتى أنها تحذف مشكل اختلاف الاصدارات
بين المطورين وحتى المستخدمين النهائيين لأنها مبنية على بيئة التطوير الأولى التي يعمل فيها التطبيق بشكل ممتاز،،
ولبناء هذه الصور تحتاج لتحضير ملف Dockerfile يحتوي على جميع الأوامر اللازمة بشكل مبسط لانشاء الصورة،، أو يمكنك تعديل ملف محضر مسبقا حسب احتياجاتك،،
لتثبيت المحرك عليك أولا بالتوجه للموقع الرسمي،
إما تحميل برنامج التثبيت الخاصة بالـWindows مباشرة أو اتباع معي الخطوات التالية لتثبيت في Linux
السلام عليكم ورحمة الله وبركاته، أخي عبدالله.
بارك الله فيك على تقديم هذا الدرس الشامل والمفيد حول Docker، وخاصة بمناسبة الذكرى السنوية.
مجهودك الرائع في تبسيط المفاهيم للمبتدئين يستحق كل التقدير.
هذه المساهمة ستفيد الكثير من الأعضاء الذين يتطلعون لفهم Docker بشكل أفضل.
جزاك الله خيراً على جهودك ونتطلع إلى المزيد من مشاركاتك المميزة.
السلام عليكم ورحمة الله تعالى وبركاته
جزاك الله خيرا أخي عبد الله على الدرس المميز و الذي سيفيدنا بدون شك
خاصة و أنه جاء بمناسبة الذكرى السنوية
جزاك الله خيرا ووفقك