لو عندك فكرة لتطبيق ذكاء اصطناعي أو بتتعلم مجال تعلم الآلة، وسامع كتير عن Docker بس مش عارف تبدأ إزاي، فأنت في المكان الصح. ببساطة، Docker بيساعدك تجهز بيئة تشغيل متكاملة لتطبيقك، فيها كل الأدوات والمكتبات اللي محتاجها، تقدر تشغلها على أي جهاز من غير ما تقلق إن حاجة مش هتشتغل. ده بيخلي شغلك أسهل كتير، خصوصًا لو بتشارك مشروعك مع حد تاني أو عايز تشغله على سيرفر.
في عالم الذكاء الاصطناعي، غالبًا بنتعامل مع مكتبات متعددة، إصدارات مختلفة منها، واعتمادات (dependencies) بتكون معقدة. ممكن تكون بتشتغل كويس جداً على جهازك، لكن لما تيجي تنقلها لجهاز زميلك أو لسيرفر aren’t, تحصل مشاكل. هنا بييجي دور Docker.
حل مشكلة “بيشتغل عندي”
- التناسق: Docker بيضمن إن بيئة التشغيل بتاعتك هتكون متطابقة في كل مكان. صورة Docker بتبقى زي “لقطة” من بيئة شغالة، فيها كل حاجة.
- الاعتمادات: بدل ما تقعد تسطب TensorFlow، PyTorch، SciPy، Pandas، وإصدارات محددة منهم، مع Docker كل ده بيبقى موجود جوه حاوية (container) جاهزة.
- سهولة المشاركة: لو بتشتغل على مشروع جماعي، الكل بيستخدم نفس صورة Docker، وبالتالي الكل شغال بنفس البيئة بالظبط.
- النشر البسيط: لما تيجي تنشر تطبيقك على سيرفر، الموضوع بيبقى أسهل لأنك بتشغل الحاوية بدل ما تجهز السيرفر بالكامل.
تثبيت Docker: الخطوة الأولى
قبل ما نبدأ أي حاجة، لازم ننزل Docker على جهازك. العملية بسيطة ومباشرة، والموقع الرسمي لـ Docker بيقدم دليل ممتاز لكل أنظمة التشغيل.
تحميل Docker Desktop
- لأجهزة Windows & Mac:
- ادخل على موقع Docker الرسمي.
- نزل نسخة Docker Desktop المناسبة لنظام تشغيلك.
- اتبع تعليمات التثبيت. غالباً بتكون تثبيت عادي زي أي برنامج.
- لأجهزة Linux:
- الطريقة بتختلف شوية حسب توزيعة Linux اللي بتستخدمها.
- غالباً هتحتاج تستخدم سطر الأوامر لتثبيته.
- الدليل الرسمي بتاع Docker لـ Linux بيقدم خطوات تفصيلية ومحدثة: Docker installation guide for Linux.
التأكد من أن Docker يعمل
بعد التثبيت، افتح Terminal أو Command Prompt وجرب الأمر التالي:
“`bash
docker –version
“`
لو ظهرلك رقم الإصدار، يبقى Docker جاهز للاستخدام.
بناء صورة Docker (Dockerfile): وصف بيئتك

Dockerfile ده هو زي “وصفة” أو “خطة” بتخبرها لـ Docker إزاي يبني صورتك. فيه كل الأوامر اللي بيحتاجها Docker عشان يجهز بيئة التطبيق بتاعك.
أساسيات Dockerfile
FROM: بتبدأ بتحديد الصورة الأساسية اللي هتبني عليها. دي بتكون صورة جاهزة فيها نظام تشغيل أساسي وبعض الأدوات. لمشاريع AI، غالبًا بنستخدم صور Python أو صور مجهزة مسبقاً GPU-enabled.- مثال:
FROM python:3.9-slim WORKDIR: بتحدد مجلد العمل داخل الصورة.- مثال:
WORKDIR /app COPY: بتنسخ الملفات من جهازك المحلي لداخل الصورة.- مثال:
COPY . /app(هنا بننسخ كل الملفات من المجلد الحالي للجهاز المحلي لـ /app في الصورة) RUN: بتنفذ الأوامر داخل الصورة أثناء عملية البناء، زي تثبيت المكتبات.- مثال:
RUN pip install --no-cache-dir -r requirements.txt(ده أمر مهم جداً لو عندك ملف requirements.txt فيه كل الاعتمادات) CMD: بتحدد الأمر اللي هيشتغل تلقائياً لما تعمل تشغيل للحاوية (container).- مثال:
CMD ["python", "your_script.py"](لو بتشغل سكربت Python) - مثال مع API:
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"](لو بتستخدم FastAPI)
أفضل الممارسات في Dockerfile
استخدام صورة أساس مناسبة:
- لو مشروعك محتاج GPU، استخدم صورة أساس تدعم GPU (زي صور NVIDIA Docker).
- استخدم صور “slim” أو “alpine” لو احتجت حاوية أصغر حجمًا، لكن تأكد إنها بتوفر كل اللي تحتاجه.
نسخ الملفات المطلوبة فقط:
- بدل ما تنسخ كل مجلد المشروع، نسّخ بس الملفات اللي بيحتاجها التطبيق (الكود، ملفات البيانات القابلة للنسخ، ملفات إعدادات).
- استخدم ملف
.dockerignoreلتجاهل الملفات اللي مش عايزها تروح للصورة (زي.git,__pycache__, ملفات الـ virtual environment).
تثبيت التبعيات بكفاءة:
- استخدم
requirements.txtلتحديد كل المكتبات المطلوبة. - استخدم
--no-cache-dirمعpip installلتقليل حجم الصورة.
تحديد CMD أو ENTRYPOINT بشكل صحيح:
CMDهو الأمر اللي بيشتغل لما تبدأ الحاوية.ENTRYPOINTممكن تستخدمه لتعريف أمر ثابت، وCMDكـ “arguments” له.
بناء صورة Docker: من الوصفة للتنفيذ

بعد ما كتبت ملف Dockerfile، الخطوة الجاية هي إنك تبني الصورة.
أمر البناء
افتح Terminal أو Command Prompt في نفس المجلد اللي فيه ملف Dockerfile بتاعك، وشغل الأمر ده:
“`bash
docker build -t my-ai-app .
“`
docker build: هو الأمر لبناء صورة.-t my-ai-app: هو اللي بيعطي اسم للصورة اللي بتبنيها (هنا إسمهاmy-ai-app). تقدر تسميها أي حاجة..: النقطة دي بتدل على أن Dockerfile موجود في المجلد الحالي.
Docker هيبدأ ينفذ الأوامر اللي في Dockerfile خطوة بخطوة. ممكن تاخد وقت شوية، خصوصاً لو بيحمل مكتبات كتير.
طريقة التنفيذ
- التدريب: لو بتدرب نموذج بسيط، ممكن تخلي الـ
CMDيشغل سكربت التدريب. - تقديم تنبؤات (API): لو عايز تعمل API عشان تقدم تنبؤات، هتحتاج تستخدم إطار عمل زي FastAPI أو Flask.
- مثال لـ
Dockerfileلـ FastAPI:
“`dockerfile
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install –no-cache-dir -r requirements.txt
COPY . .
English