Aug 21, 2024
# ملاحظات دورة Docker الكاملة
## نظرة عامة على الدورة
- **هدف الدورة:** اكتساب فهم عميق لمفاهيم Docker واستخدامه في تطوير البرمجيات.
- **هيكل الدورة:** مزيج من الشروحات النظرية والعروض العملية.
- **المواضيع المشمولة:**
- مقدمة عن Docker والمشاكل التي يحلها
- الفرق بين Docker والآلات الافتراضية
- تثبيت Docker
- الأوامر الرئيسية لـ Docker
- سير العمل العملي لـ Docker مع مشروع توضيحي
- نشر التطبيقات المعبأة في حاويات
- استمرارية البيانات مع الأوضاع Docker
## مقدمة عن الحاويات
- **التعريف:** تربط الحاويات التطبيقات مع جميع الاعتمادات والتكوينات اللازمة، مما يجعلها قابلة للنقل وفعالة.
- **الفوائد:**
- تبسيط عملية التطوير والنشر
- عزل البيئات
- تقليل الصراعات بين إصدارات الاعتمادات
- المشاركة السهلة بين فرق التطوير
## مستودع الحاويات
- **ما هو؟** تخزين للحاويات، يسمح بمشاركة وتحريك التطبيقات.
- **الأنواع:**
- مستودعات خاصة (خاصة بالشركة)
- مستودعات عامة (مثل Docker Hub)
- **Docker Hub:** أكثر من 100,000 صورة حاوية متاحة.
## عملية التطوير مع Docker
- **العملية التقليدية:**
- التثبيت اليدوي للخدمات على جهاز كل مطور مما يؤدي إلى تكوينات معقدة.
- **مع الحاويات:**
- يسحب المطورون الحاويات اللازمة بأمر واحد، متجنبين خطوات التثبيت اليدوي.
- تضمن الحاويات البيئات الموحدة عبر إعدادات التطوير المختلفة.
## عملية النشر مع Docker
- **النشر التقليدي:**
- تقدم فريق التطوير المصنوعات والإرشادات لفريق العمليات، مما يؤدي إلى احتمالية وجود صراعات وسوء تواصل.
- **مع الحاويات:**
- يقوم المطورون بتعبئة التطبيقات في الحاويات، مما يجعل عملية النشر أبسط ويزيل خطوات التكوين على السيرفر.
## الجوانب التقنية للحاويات
- **الصور مقابل الحاويات:**
- **الصور:** حزم تحتوي على رمز التطبيق والاعتمادات.
- **الحاويات:** حالات قيد التشغيل للصور مع بيئتها ونظامها الخاص.
## مثال عملي: سحب وتشغيل الحاويات
- **سحب صورة:**
- استخدم `docker pull <image_name>` لجلب الصور من المستودعات.
- **تشغيل حاوية:**
- استخدم `docker run <image_name>` لبدء تشغيل الحاوية.
- فهم الفرق بين الحاويات الجارية والمتوقفة.
## Docker مقابل الآلات الافتراضية
- **Docker:**
- يخصص طبقة التطبيق باستخدام نواة المضيف، مما يوفر بيئات أصغر وأسرع وأكثر كفاءة.
- **الآلات الافتراضية:**
- يخصص نظام التشغيل بالكامل بنواته الخاصة، مما يؤدي إلى عبء أكبر.
## تثبيت Docker
- **خطوات التثبيت:**
- تحقق من متطلبات النظام لتثبيت Docker على أنظمة التشغيل المختلفة.
- قم بتثبيت Docker من خلال الوثائق الرسمية بناءً على نظام التشغيل.
## أوامر Docker الأساسية
- **الأوامر الشائعة:**
- `docker run`: بدء تشغيل حاوية من صورة.
- `docker ps`: سرد الحاويات الجارية.
- `docker stop <container_id>`: إيقاف تشغيل حاوية جارية.
- `docker images`: سرد الصور المتاحة.
- `docker logs <container_id>`: عرض سجلات حاوية.
## Docker Compose
- **الغرض:**
- تبسيط إدارة التطبيقات متعددة الحاويات.
- **الميزات الرئيسية:**
- تعريف الخدمات، الشبكات، والحجوم في ملف YAML واحد.
- سهل البدء وإيقاف الحاويات معًا.
## بناء ووسم صور Docker
- **Dockerfile:**
- خطة لإنشاء الصور، تحدد الصور الأساسية، الأوامر، والتكوينات.
- **بناء صورة:**
- استخدم `docker build -t <image_name>:<tag> .`
- **دفع إلى مستودع:**
- قم بالمصادقة ودفع الصور إلى مستودع Docker خاص (مثل AWS ECR).
## استمرارية البيانات مع أحجام Docker
- **أنواع الأحجام:**
- **حجم المضيف:** يعين دليلا من المضيف إلى الحاوية.
- **الحجم المجهول:** يُدار تلقائيًا بواسطة Docker، بدون اسم مرجعي.
- **الحجم المسمى:** يحدده المستخدم، يسهل الرجوع إليه.
## الخلاصة والخطوات التالية
- **Kubernetes:**
- يوصى به لإدارة التطبيقات المعقدة مع حاويات متعددة.
- **التعلم المزيد:**
- استكشف المزيد حول Docker وKubernetes وأدوات DevOps الأخرى.