فهرس الدليل
هذا الدليل الشامل سيكون بتحديث مستمر وسأقوم باضافة فقرات جديدة له بشكل دوري وتدريجي.
ما هو Docker؟
Docker هو منصة مفتوحة المصدر تهدف إلى تسهيل بناء، توزيع، وتشغيل التطبيقات باستخدام تقنية الحاويات (Containers). الحاويات تسمح لك بعزل التطبيقات وجميع المتطلبات الخاصة بها في بيئة مستقلة تمامًا، مما يجعلها قابلة للتشغيل على أي نظام يدعم Docker.
لماذا نستخدم Docker؟
- قابلية النقل: تعمل الحاويات على أي بيئة تشغيل تدعم Docker.
- كفاءة الموارد: الحاويات خفيفة جدًا مقارنة بالآلات الافتراضية (VMs).
- سهولة النشر: يمكنك تشغيل نفس التطبيق بنفس الإعدادات في بيئات تطوير، اختبار، وإنتاج.
- المرونة: تُسهل العمل مع مختلف التقنيات بدون تعارضات.
تثبيت 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.
مثال:
- إنشاء ملف باسم
Dockerfile
:
# تحديد الصورة الأساسية
FROM ubuntu:latest
# تثبيت حزم أساسية
RUN apt update && apt install -y nginx
# تحديد المنفذ
EXPOSE 80
# تشغيل الخادم
CMD ["nginx", "-g", "daemon off;"]
Bash- بناء الصورة:
docker build -t my-nginx .
Bash- تشغيل الصورة كحاوية:
docker run -d -p 8080:80 my-nginx
Bashيمكنك الآن زيارة http://localhost:8080
لرؤية خادم Nginx.
أوامر مفيدة
هنا سيتم اضافة أوامر مفيدة قد تحتاجها أثناء التطوير:
حذف كل شيء متعلق بالمشروع
docker-compose down --rmi all -v
Bashهذا الأمر يُستخدم لإزالة كل شيء متعلق بمشروع Docker Compose، وهو يقوم بالآتي:
docker-compose down
- يقوم بإيقاف الحاويات (containers) المرتبطة بالمشروع وحذفها.
--rmi all
- يحذف جميع الصور (images) المرتبطة بالمشروع.
- إذا كانت الصور منشأة محليًا أو تم تنزيلها بواسطة الملف
docker-compose.yml
، فسيتم حذفها.
-v
- يحذف التخزين (volumes) المرتبط بالمشروع.
- هذه الأحجام تُستخدم عادةً لتخزين البيانات بشكل دائم، لذا يجب الانتباه لأن حذفها يعني فقدان جميع البيانات المخزنة فيها.
متى تستخدم هذا الأمر؟
إذا كنت تريد إزالة المشروع بالكامل بما يشمل:
- الشبكات (Networks) التي تم إنشاؤها لهذا المشروع.
- الحاويات.
- الصور.
- الأحجام.
الخاتمة
Docker هو أداة قوية للمطورين والمستخدمين لتشغيل التطبيقات بكفاءة وسهولة. باستخدام Docker، يمكنك التركيز على تطوير التطبيقات دون القلق بشأن توافق الأنظمة أو تعارض التبعيات. جرّب بناء وتشغيل تطبيقاتك باستخدام Docker واكتشف قوة الحاويات بنفسك!