Loading...
الأساسيات · قراءة 7 دقائق

ما هو Docker (وهل أحتاجه)؟

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

ما هو Docker (وهل أحتاجه)؟

التشبيه اليومي

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

الصورة مقابل الحاوية

مصطلحان يسبّبان معظم الالتباس. الـ«image» هي المخطّط — لقطة مُجمّدة لتطبيقك وبيئته. والـ«container» نسخة حيّة قيد التشغيل أُنشئت من تلك الصورة. يمكنك تشغيل حاويات كثيرة من صورة واحدة، تمامًا كما تفتح نُسخًا كثيرة من مستند من قالب واحد. وتُخزَّن الصُّوَر عادةً في «registry» (مثل Docker Hub أو واحد خاص) وتُجلَب عند الحاجة.

لماذا يُستخدَم docker-compose

نادرًا ما تكون التطبيقات الحقيقية قطعة واحدة — فقد يكون لديك تطبيق ويب وعامل في الخلفية وقاعدة بيانات وذاكرة تخزين مؤقت. ويسرد ملف docker-compose.yml كل هذه «الخدمات» وكيفية ترابطها، فتنطلق الحزمة كلها معًا بتعريف واحد. على CDN.com.tr يمكنك استيراد ملف compose فتصبح كل خدمة تطبيقًا مُدارًا، بينما يمكن أن تصبح قواعد البيانات وذاكرات التخزين المؤقت إضافات مُدارة.

هل تحتاج Docker فعلًا؟

غالبًا أقلّ مما تتوقّع. إذا كنت تشغّل WordPress أو موقع PHP، فلا تحتاج أي معرفة بـ Docker — فهاتان المنصّتان بنقرات بسيطة. ولا يهمّ Docker إلا حين تريد تشغيل تطبيق مخصّص. وحتى حينها، لدى كثير من التطبيقات صورة جاهزة يمكنك استخدامها بالاسم، أو ملف docker-compose يمكنك استيراده، دون أن تكتب Docker بنفسك.

كيف يعمل على CDN.com.tr

لتشغيل تطبيق مخصّص، تعطينا صورة (مثل صورة عامة كـ «nginx» أو صورتك من registry) أو تستورد ملف docker-compose. تجلب المنصّة الصورة وتشغّلها وتمنحها رابطًا بـ HTTPS تلقائي وتُبقيها سليمة. وتدير متغيّرات البيئة والتوسّع وإعادة التشغيل من اللوحة — دون إدارة خوادم، ودون حاجة إلى بناء الصُّوَر على المنصّة نفسها.

بعض الحدود بكل صراحة

تشغّل المنصّة حاوياتك لكنها ليست مكانًا لبناء الصُّوَر أو تشغيل Docker داخل Docker، ولا تكشف منافذ TCP عامة خام (فالوصول العام عبر HTTP(S)؛ وتبقى حركة المرور الداخلية بين الخدمات خاصة). ولمعظم تطبيقات الويب وواجهات API والعمّال والأدوات هذا تمامًا ما تريده؛ أما نظام CI الذي يبني الصُّوَر فتبنيها في مكان آخر وتنشُر الناتج هنا.

متى يساعدك Docker هنا

تشغيل أداة جاهزة

انشُر شيئًا مثل RabbitMQ أو Jenkins باسم الصورة، مع وحدة تخزين دائمة لتبقى بياناته بعد إعادة التشغيل.

نشر تطبيقك الخاص

ابنِ صورتك في خطّ الإنتاج (pipeline) الخاص بك، وادفعها إلى registry، وشغّلها هنا برابط وHTTPS.

إحضار حزمة كاملة

استورد ملف docker-compose.yml وشغّل الويب والعامل وقاعدة البيانات والتخزين المؤقت معًا في خطوة واحدة.

الأسئلة الشائعة

الأساسيات بسيطة: الصورة قالب، والحاوية نسخة قيد التشغيل. ولاستخدام CDN.com.tr تقدّم غالبًا اسم صورة أو ملف compose فحسب — ونادرًا ما تحتاج إلى كتابة Docker بنفسك.

نعم. استضافة WordPress وPHP لا تتطلّب Docker إطلاقًا. ولا يدخل Docker إلا لتطبيقات الحاويات المخصّصة.

من registry — عام مثل Docker Hub، أو خاص ببيانات اعتماد تضيفها في اللوحة. تجلب المنصّة الصورة وتشغّلها.

لا — تشغّل المنصّة الصُّوَر ولا تبنيها (لا Docker داخل Docker). ابنِها في خطّ إنتاجك أو محليًا، وادفعها إلى registry، ثم انشُرها هنا.

نعم، إذا فعّلت وحدة تخزين دائمة للتطبيق، أو استخدمت إضافة مُدارة لقاعدة بيانات/Redis للبيانات ذات الحالة.