تثبيت Docker وإعداد بيئة العمل على Linux و Windows
تثبيت Docker وإعداد بيئة العمل على Linux و Windows
أصبح Docker جزءاً أساسياً من أي مسار احترافي في ما هو DevOps؟ ولماذا تدفع الشركات ثروات لمهندسي الأتمتة السحابية؟، لأنه يختصر الفروقات بين بيئات التطوير والاختبار والإنتاج داخل حاويات قابلة للتكرار. عندما تكون بيئة العمل موحّدة، تقل أخطاء الاعتمادية وتصبح خطوط النشر المستمر CI/CD أكثر استقراراً.
هذا الدليل لا يشرح التثبيت فقط، بل يركّز على بناء محطة عمل مناسبة للمهندس أو المطور الذي يريد تشغيل الحاويات محلياً، اختبار الصور، وربط المشاريع لاحقاً مع GitHub Actions أو Jenkins. وإذا كنت تعرف مشكلة اختلاف البيئة بين الأجهزة، فستجد أن مشكلة “الكود يعمل على جهازي فقط” وكيف يحلها Docker نهائياً؟ ليست مجرد نظرية، بل نتيجة مباشرة لسوء ضبط بيئة التشغيل.
لماذا يبدأ الإعداد الصحيح قبل أول حاوية؟
كثيرون يثبتون Docker ثم يتوقفون عند تشغيل أمر hello-world. لكن بيئة العمل الاحترافية تحتاج إلى أكثر من ذلك: صلاحيات محسوبة، مسارات عمل واضحة للمشاريع، ومراقبة جيدة لاستهلاك الموارد، خاصة عند تشغيل أكثر من خدمة مثل قاعدة بيانات وواجهة API وطبقة تخزين مؤقت.
من الناحية المعمارية، يعمل Docker Engine كطبقة تشغيل للحاويات، بينما يضيف Docker Desktop واجهة إدارية وتكاملاً أسهل على أجهزة المطورين. فهم هذا الفرق يساعدك على اختيار التثبيت الأنسب حسب نظامك والغرض من الاستخدام.
تثبيت Docker على Linux
المتطلبات المسبقة
يفضّل استخدام توزيعة حديثة مثل Ubuntu أو Debian أو RHEL-المشتقات. قبل التثبيت، تأكد من تحديث النظام، وإزالة أي نسخ قديمة، والتحقق من أن النواة تدعم تقنيات العزل مثل cgroups و namespaces.
خطوات التثبيت على توزيعات Debian/Ubuntu
- حدّث الحزم الأساسية وأضف أدوات التوقيع والشهادات.
- أضف مستودع
Dockerالرسمي بدل الاعتماد على النسخ القديمة داخل المستودعات العامة. - ثبّت حزم
docker-ceوcontainerdوملحقات البناء. - اختبر الخدمة وتحقق من بدء التشغيل التلقائي بعد إعادة الإقلاع.
sudo apt-get update
sudo apt-get 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
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo $VERSION_CODENAME) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo docker version
sudo docker run hello-world
إعداد الصلاحيات بدون sudo
تشغيل أوامر Docker كجذر دائماً ليس مناسباً لبيئة يومية. الأفضل إضافة المستخدم إلى مجموعة docker ثم تسجيل الخروج والعودة. هذا يسرّع العمل، لكنه يتطلب فهماً دقيقاً لأن المجموعة تمنح صلاحيات حساسة على المضيف.
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
docker ps
إضافة المستخدم إلى مجموعة
dockerتعني عملياً منحه قدرة واسعة على الوصول للنظام. لا تستخدم هذا الإعداد في الخوادم متعددة المستخدمين دون سياسة صلاحيات واضحة، ويفضّل اللجوء إلى عزل إضافي أو تشغيل الجذرless عند الحاجة.
تثبيت Docker على Windows
فهم طبقة التشغيل على Windows
في معظم حالات التطوير الحديثة، يعتمد Docker Desktop على WSL 2 لتوفير نواة Linux خفيفة داخل النظام. هذا التصميم يمنح أداء أفضل مقارنة بالحلول القديمة المعتمدة بالكامل على الآلات الافتراضية الثقيلة، كما يسهل استخدام نفس الأدوات النصية والمجلدات المشتركة.
خطوات الإعداد العملية
- فعّل ميزتي
Virtual Machine PlatformوWSL. - ثبّت نواة
WSL 2واجعلها الافتراضية. - ثبّت
Docker Desktopثم فعّل التكامل مع التوزيعة التي تعمل عليها. - خصص الذاكرة والمعالجات من الإعدادات لتجنّب استهلاك الموارد بشكل يبطئ الجهاز.
wsl --install
wsl --set-default-version 2
wsl --status
بعد تثبيت Docker Desktop، افتح الطرفية داخل توزيعة Ubuntu أو من PowerShell ونفّذ أوامر التحقق نفسها. الهدف ليس نجاح أمر واحد فقط، بل التأكد من أن التكامل بين الملفات المحلية والحاويات يعمل بدون مشاكل في الصلاحيات أو المسارات.
بناء بيئة عمل مناسبة للمشاريع الفعلية
هيكلة المجلدات والأدوات
رتّب مشاريعك داخل مجلد عمل ثابت، واجعل كل مشروع يحتوي على ملف Dockerfile وملف .dockerignore وملف compose.yaml عند الحاجة لأكثر من خدمة. هذه الهيكلة تجعل نقل المشروع إلى خادم بناء أو منصة سحابية خطوة شبه تلقائية.
services:
app:
image: nginx:stable
ports:
- "8080:80"
restart: unless-stopped
إذا كنت تعمل ضمن فريق، فاعتمد نسخة موحدة من الإضافات مثل Buildx وملحق Compose. هذا يسهّل بناء صور متعددة المنصات لاحقاً، خصوصاً عندما تنتقل من التطوير المحلي إلى خوادم تعتمد معمارية مختلفة أو إلى سجلات صور خاصة.
اختبارات التحقق السريعة
- نفّذ
docker infoللتأكد من حالة المحرك ومخزن الصور. - جرّب
docker compose upعلى خدمة بسيطة قبل إدخال قاعدة بيانات أو أحجام تخزين دائمة. - راقب استهلاك الذاكرة والأقراص لأن تراكم الصور غير المستخدمة يسبب بطئاً تدريجياً في الأجهزة المحمولة.
- اختبر ربط المجلدات
bind mountsللتأكد من أن التعديلات المحلية تظهر داخل الحاوية فوراً.
لا تربط مجلدات النظام الحساسة داخل الحاويات، ولا تحفظ أسرار التطبيقات داخل الصور نفسها. استخدم ملفات متغيرات منفصلة أو مديري أسرار مخصصين، لأن تسريب صورة واحدة إلى سجل عام قد يكشف مفاتيح وصول أو بيانات إنتاج حساسة.
أخطاء شائعة بعد التثبيت
أشهر الأخطاء هي الخلط بين تثبيت الأداة ونجاح البيئة. قد يعمل الأمر الأساسي، لكن يفشل المشروع بسبب تضارب المنافذ، صلاحيات المجلدات، أو استخدام ملفات من داخل أقراص بطيئة على Windows. كما أن تجاهل تنظيف الصور القديمة يؤدي إلى استنزاف المساحة بطريقة غير ملحوظة.
الممارسة الأفضل هي اعتبار جهازك المحلي نسخة أولية من بيئة البناء. كلما اقتربت إعداداتك من واقع الخادم أو منصة النشر، قلّت المفاجآت عند الدمج مع CI/CD، وأصبح الانتقال لاحقاً إلى منصات مثل Kubernetes أكثر سلاسة.
الخلاصة
تثبيت Docker على Linux و Windows ليس مهمة شكلية، بل خطوة تأسيسية لبناء تدفق عمل موحّد وموثوق. عندما تضبط المحرك، الصلاحيات، الموارد، وهيكلة المشروع من البداية، فإنك تختصر الكثير من أعطال التطوير والنشر، وتجهز بيئة قابلة للتوسع نحو الأتمتة السحابية والأنظمة الإنتاجية بثقة أعلى.
3 comments