Docker الدليل الشامل الأول

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

ما هو Docker؟

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

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

  1. قابلية النقل: تعمل الحاويات على أي بيئة تشغيل تدعم Docker.
  2. كفاءة الموارد: الحاويات خفيفة جدًا مقارنة بالآلات الافتراضية (VMs).
  3. سهولة النشر: يمكنك تشغيل نفس التطبيق بنفس الإعدادات في بيئات تطوير، اختبار، وإنتاج.
  4. المرونة: تُسهل العمل مع مختلف التقنيات بدون تعارضات.

تثبيت Docker

أنظمة Linux (Debian/Ubuntu)

sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
Bash

أنظمة ويندوز

قم بتحميل وتثبيت Docker Desktop من الموقع الرسمي: docker.com

الأوامر الأساسية في Docker

التحقق من تثبيت Docker

docker --version
Bash

ستظهر النسخة المثبتة من Docker.

تشغيل حاوية جديدة:

docker run hello-world
Bash

يقوم هذا الأمر بتنزيل وتشغيل صورة “hello-world”.

عرض الحاويات النشطة

docker ps
Bash

عرض جميع الحاويات

docker ps -a
Bash

إيقاف حاوية

 docker stop <container_id>
Bash

حذف حاوية

 docker rm <container_id>
Bash

حذف صورة

 docker rmi <image_name>
Bash

إنشاء ملف Dockerfile

Dockerfile هو ملف نصي يحتوي على تعليمات لإنشاء صورة Docker.

مثال:

  1. إنشاء ملف باسم Dockerfile:
   # تحديد الصورة الأساسية
   FROM ubuntu:latest

   # تثبيت حزم أساسية
   RUN apt update && apt install -y nginx

   # تحديد المنفذ
   EXPOSE 80

   # تشغيل الخادم
   CMD ["nginx", "-g", "daemon off;"]
Bash
  1. بناء الصورة:
   docker build -t my-nginx .
Bash
  1. تشغيل الصورة كحاوية:
   docker run -d -p 8080:80 my-nginx
Bash

يمكنك الآن زيارة http://localhost:8080 لرؤية خادم Nginx.

أوامر مفيدة

هنا سيتم اضافة أوامر مفيدة قد تحتاجها أثناء التطوير:

حذف كل شيء متعلق بالمشروع

docker-compose down --rmi all -v
Bash

هذا الأمر يُستخدم لإزالة كل شيء متعلق بمشروع Docker Compose، وهو يقوم بالآتي:

  1. docker-compose down
    • يقوم بإيقاف الحاويات (containers) المرتبطة بالمشروع وحذفها.
  2. --rmi all
    • يحذف جميع الصور (images) المرتبطة بالمشروع.
    • إذا كانت الصور منشأة محليًا أو تم تنزيلها بواسطة الملف docker-compose.yml، فسيتم حذفها.
  3. -v
    • يحذف التخزين (volumes) المرتبط بالمشروع.
    • هذه الأحجام تُستخدم عادةً لتخزين البيانات بشكل دائم، لذا يجب الانتباه لأن حذفها يعني فقدان جميع البيانات المخزنة فيها.

متى تستخدم هذا الأمر؟

إذا كنت تريد إزالة المشروع بالكامل بما يشمل:

  • الشبكات (Networks) التي تم إنشاؤها لهذا المشروع.
  • الحاويات.
  • الصور.
  • الأحجام.

الخاتمة

Docker هو أداة قوية للمطورين والمستخدمين لتشغيل التطبيقات بكفاءة وسهولة. باستخدام Docker، يمكنك التركيز على تطوير التطبيقات دون القلق بشأن توافق الأنظمة أو تعارض التبعيات. جرّب بناء وتشغيل تطبيقاتك باستخدام Docker واكتشف قوة الحاويات بنفسك!