Photo Docker environment

دليل المبتدئين لإعداد بيئة العمل الافتراضية Docker لتطبيقات الذكاء

لو عندك فكرة لتطبيق ذكاء اصطناعي أو بتتعلم مجال تعلم الآلة، وسامع كتير عن 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): وصف بيئتك

Docker environment

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: من الوصفة للتنفيذ

Photo Docker environment

بعد ما كتبت ملف 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 . .

لو بتستخدم Gunicorn مع Uvicorn لـ FastAPI

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

اختار العملة
يستخدم هذا الموقع ملفات تعريف الارتباط (الكوكيز) ليقدم لك تجربة تصفح أفضل. من خلال تصفح هذا الموقع ، فإنك توافق على استخدامنا لملفات تعريف الارتباط.