مقدمة في Docker
Categories:
- مقدمة في Docker
مقدمة في Docker
- Docker هو محرك حاويات للتطبيقات، يمكنه حزم التطبيق وتبعياته في حاوية محمولة، ثم نشرها على أي جهاز Linux أو Windows شائع، ويمكنه أيضاً تحقيق المحاكاة الافتراضية.
- لماذا يوجد Docker، لأن المطورين ومهندسي التشغيل غالباً ما يواجهون مشكلة معينة، وهي أن التطبيق يعمل بدون أي مشاكل في بيئة المطور، ولكنه مليء بالأخطاء (bugs) في بيئة الإنتاج الفعلية.
- يعمل البرنامج عبر مستويات مختلفة من بنية الأجهزة إلى نظام التشغيل وصولاً إلى التطبيق، لكن المطورين يركزون غالباً فقط على تطوير التطبيق ويتجاهلون المشاكل في المستويات الأخرى.
- ظهر Docker لحل هذه المشكلة، فهو يحزم التطبيق وتبعياته في حاوية، مما ينهي القلق بشأن مشاكل البيئة.
- مزامنة بيئة التطوير والإنتاج، مما يتيح للمطورين تطوير واختبار ونشر التطبيقات محلياً دون القلق من مشاكل البيئة. وهذا يرفع كفاءة التطوير والعمليات بشكل ملحوظ، بتكلفة بسيطة من الموارد.
أنصح بشدة جميع المطورين بتعلم استخدام الحاويات للتطوير والنشر، حيث تقدم بيئة تشغيل مستقرة لتطبيقاتك بتكلفة منخفضة نسبياً، مما يحسن كفاءة التطوير والعمليات.
لوصف سير عمل لاستخدام Docker بلغة بسيطة:
- إنشاء بيئة تطوير من الصفر، تتضمن نظام التشغيل، والتطبيق، وحزم التبعيات، وملفات التكوين، إلخ.
- يمكن للبيئة أن تعمل في أي مكان، ويمكن إنشاؤها في أي مكان.
- نتائج تجميع الكود المصدري في البيئة مستقرة ومتوقعة، والسلوك متطابق تماماً.
- لا يوجد أي غموض في تشغيل البرنامج داخل البيئة.
- من الأفضل استخدام طريقة تعريفية (declarative) لإنشاء البيئة (docker-compose)، لتقليل الاختلافات الخفية في البيئة، حيث يتم عرض كل شيء في التعريف.
- إنشاء “commit”، وإنشاء صورة (image)، وهذا يعادل لقطة (snapshot)، تحفظ البيئة الحالية للاستخدام المستقبلي.
- مشاركة الصورة مع المطورين ومهندسي التشغيل الآخرين، ليعمل الجميع بشكل متزامن في نفس السياق.
- مع تطور متطلبات العمل، يتم تعديل الصورة، وإعادة إنشاء commit، وإعادة إنشاء الصورة، وإعادة توزيعها.