برمجة

Docker

ما هو Docker؟

يحزّم Docker البرنامج مع مكتباته. فجوة «كان يعمل على جهازي» تصغر. ليست آلة افتراضية كاملة. تشارك النواة مع المضيف، لذلك هي أخف. تثبيت Docker على خادم Ubuntu طريق عادي.

فيمَ يُستخدم Docker؟

هو لإبقاء البيئة نفسها على جهاز المطوّر وعلى الخادم.

  • بناء التطبيق كصورة
  • تشغيل قاعدة بيانات محلياً
  • تشغيل الاختبار نفسه في CI
  • فصل عدة خدمات على خادم واحد

ماذا يمكن فعله باستخدام Docker؟

يكتب Dockerfile الخطوات: صورة أساس وحزم والأمر. docker run يفتح حاوية من تلك الصورة. منفذ الشبكة وحجم القرص يُربطان وحدهما. Docker لا تغني عن جدار الحماية أو شهادة HTTPS.

هل تعلم Docker صعب؟

يبدأ hello-world سريعاً. الصعوبة في حجم الصورة وكتابة سر داخل الصورة والشبكة. لا توضع كلمة المرور والمفتاح داخل الصورة. يُعطيان من البيئة عند التشغيل.

المزايا والحدود

الميزة: البيئة تتكرر، وفوضى الحزم الزائدة على الخادم تقل. الحد: هناك تعلّم، ويمتلئ القرص، والصورة السيئة تحمل ثغرة قديمة. root داخل الحاوية قد يعطي حقاً واسعاً.

أفكار أساسية

الصورة قالب يُقرأ. الحاوية عملية تُخلق منها. السجل، مثل Docker Hub، يحفظ الصور.

  • Dockerfile قائمة تعليمات
  • docker build ينشئ صورة
  • يُقابل المنفذ بـ -p 8080:80
  • volume قد يحفظ البيانات عند حذف الحاوية

مثال قصير

هذا الأمر ينزّل صورة اختبار ويشغّلها ويحذفها عند الانتهاء.

docker run --rm hello-world

أسئلة شائعة

  • هل Docker آلة افتراضية؟ لا. هي حاوية تشارك النواة.
  • هل الصورة والحاوية الشيء نفسه؟ لا. الصورة قالب، والحاوية نسخة تعمل.
  • هل تعطي Docker بروتوكول HTTPS؟ لا. التشفير في الشهادة، عادة من جهة Nginx.