التخطي إلى المحتوى الرئيسي
انقر على بويبو 🤖
جميع المقالات

دليل استخدام Docker للمطورين: من الصفر إلى إطلاق التطبيقات في حاويات سحابية

26 يوليو 2026 3 دقائق قراءةبواسطة Bouiba Academy
دليل استخدام Docker للمطورين: من الصفر إلى إطلاق التطبيقات في حاويات سحابية

دليل استخدام Docker للمطورين: من الصفر إلى إطلاق التطبيقات في حاويات سحابية

أحد أكبر التحديات التي تواجه المطورين في البيئات البرمجية الحديثة هي مشكلة "تطبيق يعمل على جهازي ولكنه يفشل على السيرفر" (It works on my machine). أحدثت تكنولوجيا الحاويات Docker ثورة حقيقية في طريقة بناء وتشغيل وتطوير البرمجيات من خلال تغليف الكود والمكتبات والاعتمادات في بيئة معزولة تضمن التشغيل المتطابق في أي مكان.

في هذا الدليل العملي من Bouiba Academy، ستتعلم مفهوم Docker، كيفية إنشاء أول Dockerfile خاص بك، وإدارة الخدمات المتعددة باستخدام docker-compose.


ما هو Docker ولماذا يحتاجه كل مطور؟

تقوم تقنية Docker بعزل التطبيق عن نظام التشغيل المستضيف عن طريق ما يسمى Containers (الحاويات). على عكس الأجهزة الوهمية (Virtual Machines) التقليدية التي تتطلب نظام تشغيل كاملاً وثقيلاً لكل بيئة، تتشارك حاويات Docker نواة نظام التشغيل (OS Kernel) الخاص بالجهاز المستضيف، مما يجعلها:

  • سريعة للغاية: تبدأ في غضون ثوانٍ معدودة.
  • خفيفة الوزن: تستخدم جزءاً ضئيلاً من الذاكرة والـ CPU مقارنة بالـ VMs.
  • متطابقة البيئة: تعمل بنفس السلوك على Windows, macOS, Linux وسيرفرات Cloud.

المفاهيم الأساسية في Docker

قبل كتابة الأوامر، يجب فهم 3 مكونات أساسية:

  • Dockerfile: ملف نصي يتضمن التعليمات البرمجية لبناء البيئة المطلوبة.
  • Image (الصورة): القالب الجاهز المشفر الناتج عن بناء الـ Dockerfile.
  • Container (الحاوية): النسخة الحية والفعالة أثناء التشغيل من الـ Image.

خطوات إنشاء وتشغيل تطبيقك الأول بـ Dockerfile

سنفترض أن لدينا تطبيق Node.js أو Python ونريد تحزيمه في حاوية Docker.

1. إنشاء ملف Dockerfile

قم بإنشاء ملف باسم Dockerfile داخل المجلد الرئيسي لمشروعك وضَع فيه المحتوى التالي:

# 1. اختيار الصورة الأساسية
FROM node:20-alpine

2. تحديد مجلد العمل داخل الحاوية

WORKDIR /app

3. نسخ ملفات الاعتماد أولاً للاستفادة من الـ Cache

COPY package*.json ./

4. تثبيت المكتبات البرمجية

RUN npm install --production

5. نسخ باقي كود المشروع

COPY . .

6. تحديد المنفذ المطلوب

EXPOSE 3000

7. أمر تشغيل التطبيق

CMD ["npm", "start"]

2. بناء صورة Docker (Build Image)

افتح التيرمينال واكتب الأمر التالي لبناء الصورة:

docker build -t my-app:v1 .

3. تشغيل الحاوية (Run Container)

لتشغيل التطبيق وتوجيه المنفذ 3000 إلى جهازك المحالي:

docker run -d -p 3000:3000 --name my-running-app my-app:v1

يمكنك الآن فتح http://localhost:3000 لمشاهدة تطبيقك يعمل باحترافية داخل الحاوية!


إدارة الخدمات المتعددة باستخدام Docker Compose

في المشاريع الواقعية، ستجتاج إلى تشغيل تطبيقك بجانب قاعدة بيانات مثل PostgreSQL أو Redis أو أدوات مثل n8n. يساعدك Docker Compose على إدارة وتشغيل عدة حاويات بملف واحد.

قم بإنشاء ملف docker-compose.yml:

version: '3.8'

services: web_app: build: . ports:

  • "3000:3000"

environment:

  • NODE_ENV=production
  • DB_HOST=postgres_db

depends_on:

  • postgres_db

postgres_db: image: postgres:15-alpine environment: POSTGRES_USER: bouiba_user POSTGRES_PASSWORD: supersecurepassword POSTGRES_DB: bouiba_db ports:

  • "5432:5432"

volumes:

  • pgdata:/var/lib/postgresql/data

volumes: pgdata:

لتشغيل جميع الخدمات معاً في الخلفية بضغطة زر:

docker compose up -d

أهم أفضل الممارسات (Best Practices) للمطورين

  • استخدم الصور المصغرة (Alpine-based images): مثل node:20-alpine أو python:3.11-slim لتقليل حجم الصورة وتوفير مساحة السيرفر.
  • تجنب التشغيل كـ Root User: قم بإضافة مستخدم غير ممتلك للصلاحيات الكلية داخل الـ Dockerfile لزيادة الأمان.
  • استخدام ملف .dockerignore: أضف node_modules و .git و .env لتجنب نسخ الملفات غير الضرورية داخل الصورة.

الأسئلة الشائعة (FAQ)

هل يحتاج Docker إلى سيرفر قوي ليعمل؟

لا، Docker يتميز باستهلاك خفيف جداً للموارد ويتم تشغيله بنجاح حتى على أصغر سيرفرات VPS المجانية مثل Oracle Cloud و DigitalOcean.

ما الفرق بين Docker Compose و Kubernetes؟

Docker Compose مخصص لإدارة الحاويات على جهاز واحد أو سيرفر فردي بسهولة، بينما Kubernetes مخصص لإدارة وتوسيع (Scaling) مئات الحاويات الموزعة على سيرفرات سحابية ضخمة.

كيف أحافظ على بيانات قاعدة البيانات عند إعادة تشغيل الحاوية؟

باستخدام الـ Volumes في Docker، حيث يتم حفظ البيانات خارج الحاوية في قرص التخزين الدائم للخدمة.

مباريات اليوم

كل المباريات