التشبيه اليومي: الصور والحاويات
تخيّل حاوية شحن. مهما وضعت بداخلها، فلها شكل قياسي، فتستطيع أي سفينة أو شاحنة أو رافعة حملها دون أن تكترث لمحتوياتها. وتفعل حاوية Docker الشيء نفسه للبرمجيات: تغلّف تطبيقك واعتمادياته في حزمة قياسية، فيستطيع أي نظام متوافق تشغيله بطريقة متطابقة — دون مفاجآت "إنه يعمل على جهازي".
مصطلحان يسبّبان معظم الالتباس. "الصورة" هي المخطّط — لقطة مجمّدة لتطبيقك وبيئته. و"الحاوية" نسخة حيّة قيد التشغيل أُنشئت من تلك الصورة. يمكنك تشغيل حاويات كثيرة من صورة واحدة، تمامًا كما تفتح نسخًا كثيرة من مستند من قالب واحد. وتُخزَّن الصور عادةً في "سجلّ" (مثل Docker Hub أو سجلّ خاص) وتُسحَب عند الحاجة.
ملفات compose ومقدار Docker الذي تحتاجه فعلًا
نادرًا ما تكون التطبيقات الحقيقية قطعة واحدة — فقد يكون لديك تطبيق ويب، وعامل معالجة في الخلفية، وقاعدة بيانات، وذاكرة تخزين مؤقت. يسرد ملف docker-compose.yml كل هذه "الخدمات" وكيفية اتصالها، فتبدأ المنظومة كاملة معًا بتعريف واحد. وعلى CDN.com.tr يمكنك استيراد ملف compose فتصبح كل خدمة تطبيقًا مُدارًا، بينما يمكن أن تصبح قواعد البيانات والذواكر إضافاتٍ مُدارة.
غالبًا تحتاج أقل مما تتوقّع. فإن كنت تشغّل WordPress أو موقع PHP، فلست بحاجة إلى أي معرفة بـ Docker إطلاقًا — فتلك المنصّات بالنقر فحسب. ولا يهمّ Docker إلا حين تريد تشغيل تطبيق مخصّص. وحتى حينها، فكثير من التطبيقات لها صورة جاهزة تستخدمها بالاسم، أو ملف docker-compose تستورده، دون أن تكتب Docker بنفسك.
كيف يعمل على CDN.com.tr، وحدوده الصادقة
لتشغيل تطبيق مخصّص، تعطينا صورة (مثلًا صورة عامة كـ "nginx" أو صورتك الخاصة من سجلّ) أو تستورد ملف docker-compose. تسحب المنصّة الصورة، وتشغّلها، وتمنحها رابطًا مع HTTPS تلقائي، وتبقيها في صحة جيدة. وتدير أنت متغيّرات البيئة والتوسّع وإعادات التشغيل من اللوحة — دون إدارة خوادم، ودون حاجة إلى بناء الصور على المنصّة نفسها.
تشغّل المنصّة حاوياتك لكنها ليست مكانًا لبناء الصور أو تشغيل Docker داخل Docker، ولا تكشف منافذ TCP عامة خام (فالوصول العام عبر HTTP(S)؛ وتبقى الزيارات الداخلية بين الخدمات خاصة). وبالنسبة إلى معظم تطبيقات الويب وواجهات API والعمّال والأدوات، فهذا بالضبط ما تريده؛ أما لنظام تكامل مستمر يبني الصور، فستبني في مكان آخر وتنشر النتيجة هنا.
متى يساعدك Docker هنا
انشر شيئًا مثل RabbitMQ أو Jenkins باسم الصورة، مع وحدة تخزين دائمة تبقى بياناتها بعد إعادات التشغيل.
ابنِ صورتك في خط الإنتاج الخاص بك، وادفعها إلى سجلّ، وشغّلها هنا برابط وHTTPS.
استورد ملف docker-compose.yml واحصل على الويب والعامل وقاعدة البيانات والذاكرة تعمل معًا في خطوة واحدة.
الأسئلة الشائعة
هل تعلّم Docker صعب؟
الأساسيات بسيطة: الصورة قالب، والحاوية نسخة قيد التشغيل. ولاستخدام CDN.com.tr تكتفي غالبًا بتقديم اسم صورة أو ملف compose — ونادرًا ما تحتاج إلى كتابة Docker بنفسك.
هل يمكنني استخدام المنصّة دون Docker؟
نعم. لا تتطلّب استضافة WordPress وPHP أي Docker إطلاقًا. ولا يدخل Docker إلا في تطبيقات الحاويات المخصّصة.
هل يمكنني بناء صورتي على CDN.com.tr؟
لا — تشغّل المنصّة الصور ولا تبنيها (لا Docker-داخل-Docker). ابنِ في خط الإنتاج الخاص بك أو محليًا، وادفع إلى سجلّ، ثم انشر هنا.