Docker للمطورين: الصور والحاويات وCompose

DevOps2026-10-01TryQuickToolBox

كمطور، من المحتمل أنك واجهت إحباط عدم اتساق البيئة: "إنه يعمل على جهازي!" يحل Docker هذه المشكلة عن طريق تغليف التطبيقات في حاويات. يشرح هذا الدليل صور Docker والحاويات وCompose لمساعدتك في بناء وشحن وتشغيل التطبيقات بشكل متسق.

ما هو Docker؟

Docker هو منصة لتطوير وشحن وتشغيل التطبيقات في حاويات. الحاويات هي حزم خفيفة الوزن ومستقلة وقابلة للتنفيذ تتضمن كل ما يلزم لتشغيل البرامج: الكود، وبيئة التشغيل، وأدوات النظام، والمكتبات، والإعدادات.

الصور مقابل الحاويات

الصورة هي قالب للقراءة فقط يحتوي على تعليمات لإنشاء حاوية. الحاوية هي نسخة قابلة للتشغيل من صورة. يمكنك إنشاء حاويات متعددة من نفس الصورة، كل منها معزولة عن الأخرى.

العمل مع الصور

يتم بناء الصور من Dockerfile، وهو ملف نصي يحتوي على تعليمات. إليك مثال بسيط لـ Node.js:

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]

قم ببناء الصورة باستخدام:

docker build -t my-app .

سرد الصور: docker images

تشغيل الحاويات

ابدأ حاوية من صورة:

docker run -d -p 3000:3000 --name my-container my-app

يقوم هذا بتشغيل الحاوية في وضع منفصل (-d)، وربط المنفذ 3000، وتسميتها my-container.

سرد الحاويات قيد التشغيل: docker ps

إيقاف حاوية: docker stop my-container

إزالة حاوية: docker rm my-container

لماذا استخدام Docker Compose؟

عندما يعتمد تطبيقك على خدمات متعددة (قاعدة بيانات، ذاكرة تخزين مؤقت، إلخ)، تصبح إدارة الحاويات الفردية مرهقة. يتيح لك Docker Compose تعريف وتشغيل تطبيقات متعددة الحاويات باستخدام ملف YAML.

مثال على ملف Compose

أنشئ docker-compose.yml:

version: '3.8'
services:
  web:
    build: .
    ports:
      - "3000:3000"
    depends_on:
      - db
  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: example
    volumes:
      - postgres_data:/var/lib/postgresql/data
volumes:
  postgres_data:

تشغيل جميع الخدمات: docker compose up -d

إيقاف وإزالة: docker compose down

أفضل الممارسات للمطورين

ورقة مرجعية للأوامر الشائعة

الأمرالوصف
docker build -t name .بناء صورة من Dockerfile
docker run -p host:container imageتشغيل حاوية وربط المنافذ
docker ps -aسرد جميع الحاويات
docker exec -it container bashفتح shell داخل حاوية قيد التشغيل
docker compose upتشغيل الخدمات المحددة في ملف Compose
docker compose logs -fمتابعة السجلات من جميع الخدمات

الأسئلة الشائعة

ما الفرق بين الصورة والحاوية؟

الصورة هي قالب ثابت؛ الحاوية هي نسخة قيد التشغيل من تلك الصورة. يمكنك إنشاء العديد من الحاويات من صورة واحدة.

متى يجب أن أستخدم Docker Compose؟

استخدم Compose عندما يتطلب تطبيقك خدمات متعددة (مثل خادم ويب، قاعدة بيانات، ذاكرة تخزين مؤقت) تحتاج إلى العمل معًا. إنه يبسط التنسيق للتطوير والاختبار.

كيف أحافظ على استمرارية البيانات في Docker؟

استخدم وحدات التخزين (volumes) أو عمليات الربط (bind mounts). تتم إدارة وحدات التخزين بواسطة Docker وتُخزن في منطقة مخصصة؛ عمليات الربط تربط بدليل المضيف. كلاهما يبقى بعد إعادة تشغيل الحاوية.

هل أنت مستعد لتبسيط سير عمل Docker الخاص بك؟ جرب محلل سجلات Nginx لتصحيح سجلات الحاويات بسرعة.