تخطَّ إلى المحتوى

🐳 شرح Docker

كتابة Dockerfile

الدرس 3 من 31· ⏱ 1 دقائق قراءة· 🗓 آخر تحديث: ٢١ أغسطس ٢٠٢٦

ما هو Dockerfile؟

ملف نصّي يحتوي تعليمات بناء صورة لتطبيقك خطوة بخطوة.

مثال لتطبيق Node.js

# 1. الصورة الأساس
FROM node:20

# 2. مجلد العمل داخل الحاوية
WORKDIR /app

# 3. نسخ ملفات الاعتماديات وتثبيتها
COPY package*.json ./
RUN npm install

# 4. نسخ باقي المشروع
COPY . .

# 5. المنفذ الذي يستمع عليه التطبيق
EXPOSE 3000

# 6. أمر التشغيل
CMD ["node", "app.js"]

شرح التعليمات

التعليمةالوظيفة
FROMالصورة الأساس التي نبني فوقها
WORKDIRمجلد العمل داخل الحاوية
COPY / ADDنسخ ملفات من جهازك إلى الصورة (ADD تدعم أيضًا فك الأرشيفات وروابط URL، لكن COPY أوضح ومفضّلة في أغلب الحالات)
RUNتنفيذ أمر أثناء البناء (مثل npm install)
ENVمتغيّر بيئة بقيمة افتراضية داخل الصورة (التفاصيل الكاملة في درس متغيّرات البيئة)
EXPOSEتوثيق المنفذ المستخدَم
CMDالأمر الافتراضي الذي يُنفّذ عند تشغيل الحاوية
ENTRYPOINTالأمر الثابت للحاوية؛ يُستخدم غالبًا مع CMD كوسائط له

CMD مقابل RUN

  • RUN يُنفَّذ أثناء البناء (تثبيت حِزَم، مثل npm install) وتُحفَظ نتيجته في طبقة الصورة.
  • CMD يُنفَّذ عند تشغيل الحاوية — هو أمر الإقلاع الافتراضي، ويمكن استبداله بتمرير أمر آخر لـ docker run.

بناء الصورة وتشغيلها

docker build -t my-app .
docker run -p 3000:3000 my-app

-t my-app يعطي الصورة اسمًا، والنقطة . تعني المجلد الحالي.

نصيحة: .dockerignore

كملف .gitignore، يمنع نسخ ملفات غير ضرورية:

node_modules
.git
.env

🎯 التالي: Docker Compose لإدارة عدة حاويات.

شرح كتابة Dockerfile — Docker بالعربي
كتابة DockerfileDocker بالعربي · The Code Fix

📚 لمزيد من التعمّق في Docker، راجِع التوثيق الرسمي لـ Docker.

هل كان هذا الدرس مفيدًا؟