فهم Dockerfiles
تعلّموا الصياغة والتعليمات الشائعة المستخدمة في Dockerfiles لتحديد كيفية إنشاء صورة
فهم Dockerfiles درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ما هو Dockerfile؟
تخيّلوا أن لديكم وصفة لخبز كعكة. إن Dockerfile مشابه جدًا لذلك! فهو ملف نصي عادي يحتوي على جميع التعليمات التي يحتاج إليها Docker لإنشاء صورة Docker تلقائيًا.
فبدلًا من خلط المكونات، تخبرون Docker بنظام التشغيل الأساسي الذي يجب استخدامه، والبرامج التي يجب تثبيتها، وطريقة إعداد تطبيقكم داخل الصورة.

الفوائد: أتمتة الإنشاء
تقدم Dockerfiles مزايا عديدة لسير عمل التطوير لديكم:
- الأتمتة: لا مزيد من الخطوات اليدوية! ينشئ Docker الصور باستمرار بالطريقة نفسها في كل مرة.
- التحكم في الإصدارات: إن Dockerfiles شيفرة، ولذلك يمكنكم تتبع التغييرات باستخدام Git.
- قابلية إعادة الإنتاج: يستطيع أي شخص يملك Dockerfile إنشاء الصورة نفسها تمامًا.
- الشفافية: يمكنكم رؤية محتويات الصورة بدقة.
البنية الأساسية لـ Dockerfile
إن Dockerfile عبارة عن قائمة من التعليمات تُنفّذ بالترتيب من الأعلى إلى الأسفل. وتنشئ كل تعليمة طبقة جديدة في الصورة.
والصياغة الأساسية بسيطة:
INSTRUCTION argumentsتبدأ التعليقات بالرمز #، كما في العديد من لغات البرمجة. ولا تتأثر تعليمات Docker بحالة الأحرف، لكن من المتعارف عليه كتابتها بأحرف كبيرة.
اختيار صورة أساسية باستخدام FROM
يجب أن يبدأ كل Dockerfile بتعليمة FROM. وهي تحدد الصورة الأساسية التي ستُبنى عليها صورتكم الجديدة. وتحتوي هذه الصورة عادةً على نظام تشغيل، مثل Alpine Linux، وأحيانًا على برامج مثبّتة مسبقًا.
فكّروا في الأمر على أنه اختيار نقطة البداية: لوحة فارغة أو لوحة تحتوي مسبقًا على بعض الألوان الأساسية.
FROM alpine:latestتنفيذ الأوامر باستخدام RUN
تُستخدم تعليمة RUN لتنفيذ الأوامر أثناء عملية إنشاء الصورة. وهنا يمكنكم تثبيت الحزم وإنشاء الأدلة أو ترجمة الشيفرة.
ينشئ كل أمر RUN طبقة جديدة، ولذلك قد يساعد دمج الأوامر باستخدام && في تقليل حجم الصورة.
RUN apk update && apk add gitالأمر الافتراضي باستخدام CMD
توفر تعليمة CMD أوامر أو وسيطات افتراضية للحاوية قيد التنفيذ. وعلى خلاف RUN، تُنفذ أوامر CMD عند بدء الحاوية، وليس أثناء الإنشاء.
إذا حددتم أمرًا عند تشغيل حاوية، مثل docker run my-image ls، فسيحل ذلك الأمر محل تعليمة CMD.
CMD ["echo", "Hello from container!"]إضافة الملفات باستخدام COPY
تنسخ تعليمة COPY الملفات أو الأدلة الجديدة من جهازكم المضيف، حيث تنشئون الصورة، إلى نظام ملفات صورة Docker في مسار محدد.
ويُفضّل استخدامها عمومًا على ADD لأنها أكثر وضوحًا ولا تنسخ سوى الملفات المحلية.
COPY ./app /usr/src/appدليل العمل ومتغيرات البيئة
تحدد WORKDIR دليل العمل لأي تعليمات RUN وCMD وENTRYPOINT وCOPY وADD تأتي بعدها. وهذا يجعل Dockerfile أكثر تنظيمًا.
تحدد ENV متغيرات البيئة. وتتوفر هذه المتغيرات للتعليمات اللاحقة في Dockerfile، وكذلك للحاوية قيد التشغيل.
WORKDIR /app
ENV PORT=8080التعريف بالمنافذ باستخدام EXPOSE
تُعلم تعليمة EXPOSE Docker بأن الحاوية تستمع إلى منافذ الشبكة المحددة أثناء التشغيل. لكنها لا تنشر المنفذ فعليًا.
فكّروا فيها على أنها توثيق. ولإتاحة الوصول إلى المنفذ من خارج الحاوية فعليًا، يجب استخدام الخيار -p مع docker run.
EXPOSE 80
EXPOSE 443أول Dockerfile بسيط لكم
لنجمع كل ذلك معًا! إليكم Dockerfile أساسيًا يُعد صورة Alpine Linux، ويثبّت حزمة، ويحدد أمرًا افتراضيًا.
لإنشائه، احفظوه باسم Dockerfile في دليل فارغ، ثم شغّلوا docker build -t my-simple-app . في الطرفية.
FROM alpine:latest
LABEL maintainer="CoddyKit"
RUN apk update && apk add --no-cache bash
WORKDIR /app
CMD ["bash", "-c", "echo 'Hello from my custom Alpine image!' && sleep 3600"]اختبار تعليمات Dockerfile
اختبروا معرفتكم! أي من هذه التعليمات تُنفّذ أثناء عملية إنشاء الصورة وتعدّل محتوى الصورة أو بنيتها مباشرة؟
مراجعة: أساسيات Dockerfile
لقد خطوتم خطوة كبيرة نحو فهم صور Docker! تعلّمنا أن Dockerfiles ملفات نصية تحتوي على تعليمات لإنشاء الصور، وتقدم مزايا كبيرة مثل الأتمتة وقابلية إعادة الإنتاج.
التعليمات الأساسية التي تناولناها:
FROM: تحدد الصورة الأساسية.RUN: تنفذ الأوامر أثناء الإنشاء.CMD: تحدد الأمر الافتراضي للحاوية قيد التشغيل.COPY: تضيف الملفات من المضيف إلى الصورة.WORKDIRوENVوEXPOSE: تهيئ بيئة الصورة والحاوية.
الأسئلة الشائعة
هل درس «فهم Dockerfiles» مجاني؟
نعم — نص درس «فهم Dockerfiles» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «فهم Dockerfiles»؟
تعلّموا الصياغة والتعليمات الشائعة المستخدمة في Dockerfiles لتحديد كيفية إنشاء صورة تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «فهم Dockerfiles»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.