الرئيسية قاعدة المعرفة الشبكات والاتصالات Docker للمهندس الصناعي: الحاويات التي غيّرت طريقة نشر البرامج
الشبكات والاتصالات

Docker للمهندس الصناعي: الحاويات التي غيّرت طريقة نشر البرامج

ما هي الحاويات ولماذا تهم المهندس؟

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

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

بالنسبة للمهندسين الصناعيين، هذا يعني:

  • لوحات SCADA تُنشر في ثوانٍ وليس ساعات
  • أدوات المراقبة مثل Grafana تعمل بدون تعارض المكتبات
  • تطبيق Rust المُجمَّع على حاسوبك يعمل بشكل متطابق على خادم المصنع
  • التراجع عن تحديث معطّل يحتاج أمراً واحداً وليس زيارة طوارئ

الحاويات مقابل الآلات الافتراضية

الآلات الافتراضية تحاكي نظام تشغيل كامل. الحاوية تشارك نواة المضيف وتعزل طبقة التطبيق فقط. هذا يجعل الحاويات تبدأ في أجزاء الثانية وتستهلك ذاكرة أقل بكثير.

تثبيت Docker على Linux و Windows

على Ubuntu/Debian (الموصى به للخوادم)

sudo apt update
sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

أضف مستخدمك إلى مجموعة docker لتجنب استخدام sudo في كل مرة:

sudo usermod -aG docker $USER
newgrp docker

على Windows

حمّل وثبّت Docker Desktop من موقع Docker الرسمي. فعّل WSL 2 أثناء التثبيت للحصول على أداء أفضل. بعد التثبيت، افتح PowerShell وتحقق:

docker --version
docker run hello-world

الصور والحاويات: الفرق الجوهري

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

# تحميل صورة
docker pull grafana/grafana:latest

# إنشاء وتشغيل حاوية من تلك الصورة
docker run -d --name factory-dashboard -p 3000:3000 grafana/grafana:latest

# عرض الحاويات العاملة
docker ps

# عرض جميع الصور على نظامك
docker images

أول حاوية: تشغيل تطبيق مراقبة

لنُطلق لوحة مراقبة Grafana — أداة شائعة في البيئات الصناعية لعرض بيانات الآلات وقراءات المستشعرات.

docker run -d \
  --name scada-monitor \
  -p 3000:3000 \
  -e GF_SECURITY_ADMIN_PASSWORD=factory2025 \
  grafana/grafana:latest

افتح http://localhost:3000 في المتصفح. سجّل الدخول باسم المستخدم admin وكلمة المرور التي حددتها. الآن لديك لوحة مراقبة احترافية تعمل في ثوانٍ.

الإيقاف والحذف

docker stop scada-monitor
docker rm scada-monitor

Dockerfile: بناء صورتك الخاصة

Dockerfile هو ملف نصي يحتوي تعليمات لبناء صورة مخصصة. إليك مثالاً لتطبيق مراقبة صناعي بلغة Rust:

FROM rust:1.82-slim AS builder
WORKDIR /app
COPY Cargo.toml Cargo.lock ./
COPY src ./src
RUN cargo build --release

FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y ca-certificates && rm -rf /var/lib/apt/lists/*
COPY --from=builder /app/target/release/factory-monitor /usr/local/bin/
EXPOSE 8080
CMD ["factory-monitor"]

البناء والتشغيل

docker build -t factory-monitor:v1 .
docker run -d --name monitor -p 8080:8080 factory-monitor:v1

البناء متعدد المراحل يُبقي الصورة النهائية صغيرة بفصل بيئة التجميع عن بيئة التشغيل.

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

الأمر الوصف
docker ps عرض الحاويات العاملة
docker ps -a عرض جميع الحاويات بما فيها المتوقفة
docker logs <name> عرض سجلات خرج الحاوية
docker exec -it <name> bash فتح صدفة داخل الحاوية
docker stop <name> إيقاف حاوية عاملة
docker rm <name> حذف حاوية متوقفة
docker rmi <image> حذف صورة
docker system prune تنظيف الصور والحاويات غير المستخدمة

فحص حاوية عاملة

# عرض السجلات المباشرة من حاوية SCADA
docker logs -f scada-monitor

# فحص استهلاك الموارد
docker stats

# فحص إعدادات الحاوية
docker inspect scada-monitor

الخلاصة

الحاويات تُغلّف التطبيقات في وحدات محمولة ومعزولة تعمل بشكل متطابق عبر حواسيب التطوير وخوادم المصانع والخوادم السحابية. Docker يوفر المحرك لبناء وتشغيل وإدارة هذه الحاويات. في الدرس القادم، ستتعلم Docker Compose لتنسيق حاويات متعددة — تطبيق وقاعدة بيانات ولوحة مراقبة — تعمل معاً كنظام صناعي متكامل.

Docker containers images Dockerfile deployment isolation دوكر الحاويات الصور النشر العزل البيئة الافتراضية