{getToc} $title={محتويات الموضوع} $count={Boolean}
Docker هي منصة مفتوحة المصدر تُستخدم لبناء وتشغيل وإدارة التطبيقات في بيئات معزولة تسمى "الحاويات". توفر الحاويات طريقة فعالة لتعبئة التطبيق مع جميع تبعياته، مما يضمن تشغيله بشكل متسق عبر بيئات مختلفة، وحل مشكلة "يعمل على جهازي" الشهيرة. سيوفر هذا الدليل شرحًا مفصلاً وشاملاً لكيفية استخدام Docker على نظام Linux، مع التركيز على خطوات التثبيت، الأوامر الأساسية، وأفضل الممارسات للحفاظ على الأمان والكفاءة.
كيفية تثبيت Docker على نظام لينكس
تثبيت Docker Engine هو الخطوة الأولى والأساسية لاستغلال إمكانياته على نظام لينكس. تختلف خطوات التثبيت قليلاً باختلاف توزيعة لينكس التي تستخدمها، لكن المفهوم العام يتضمن إعداد المستودعات الرسمية لـ Docker وتثبيت الحزم الضرورية. هنا سنتناول خطوات التثبيت الشائعة لتوزيعات مبنية على دبيان مثل أوبونتو، والتي تعد الأكثر استخدامًا.
{getCard} $type={post} $title={قد تعجبك أيضاً}
ما هو الفرق بين Docker Engine و Docker Desktop على لينكس؟
Docker Engine هو المكون الأساسي الذي يشغل الحاويات ويحتوي على خادم Docker وواجهة سطر الأوامر (CLI). هو الخيار المفضل لخوادم الإنتاج والبيئات التي لا تتطلب واجهة رسومية. أما Docker Desktop فهو تطبيق يوفر واجهة رسومية (GUI) شاملة، مع دعم Kubernetes، ومصمم لتجربة تطوير متكاملة. على لينكس، غالبًا ما يستخدم Docker Desktop آلة افتراضية (VM) لتشغيل Docker Engine.
التحضير والتثبيت على التوزيعات المستندة إلى Debian (مثل Ubuntu)
قبل الشروع في تثبيت Docker، من الضروري تحديث قائمة الحزم في نظامك وتثبيت بعض المتطلبات الأساسية. هذه الخطوات تضمن أن نظامك جاهز لاستقبال حزم Docker دون مشاكل.
تحديث النظام وتثبيت المتطلبات الأساسية
ابدأ بتحديث فهرس الحزم المحلي لنظامك لضمان الحصول على أحدث الإصدارات من البرامج، ثم قم بتثبيت الحزم الضرورية التي تسمح لنظامك بإدارة مستودعات HTTPS واستخدام بروتوكول curl لتحميل الملفات.
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
إضافة مفتاح Docker GPG الرسمي والمستودع
يجب إضافة مفتاح GPG الرسمي لـ Docker للتحقق من سلامة الحزم التي ستقوم بتثبيتها. بعد ذلك، قم بإضافة مستودع Docker الرسمي إلى مصادر حزم apt الخاصة بنظامك.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
تثبيت Docker Engine
بعد إعداد المستودعات، يمكنك الآن تثبيت Docker Engine ومكوناته مثل docker-ce (إصدار المجتمع)، docker-ce-cli (واجهة سطر الأوامر)، وcontainerd.io (مكون وقت التشغيل الأساسي للحاويات).
sudo apt-get install docker-ce docker-ce-cli containerd.io
تشغيل وتفعيل خدمة Docker
بعد التثبيت، من المهم التأكد من أن خدمة Docker قيد التشغيل ومفعّلة لتبدأ تلقائيًا عند إقلاع النظام.
sudo systemctl start docker
sudo systemctl enable docker
للتحقق من أن Docker يعمل بشكل صحيح، يمكنك تشغيل حاوية اختبار بسيطة:
docker run hello-world
إذا رأيت رسالة ترحيب من Docker، فهذا يعني أن التثبيت كان ناجحًا.
{getCard} $type={post} $title={قد تعجبك أيضاً}
إدارة صلاحيات المستخدم (اختياري وموصى به)
بشكل افتراضي، يتطلب تشغيل أوامر Docker صلاحيات sudo. لتجنب الحاجة لاستخدام sudo في كل مرة، يمكنك إضافة المستخدم الحالي إلى مجموعة docker.
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
الآن يمكنك تشغيل أوامر Docker بدون sudo، مثل docker run hello-world.
المفاهيم الأساسية والأوامر الشائعة لـ Docker
فهم المفاهيم الأساسية لـ Docker هو مفتاح الاستخدام الفعال. تتكون بيئة Docker من عدة مكونات رئيسية تعمل معًا لتوفير تجربة الحاويات. إليك شرحًا لهذه المفاهيم والأوامر الأساسية التي ستحتاجها لإدارة الحاويات والصور.
مكونات Docker الرئيسية
- Docker Engine: هو المكون الأساسي الذي يدير الحاويات والصور. يتكون من خادم Docker (daemon) وواجهة سطر الأوامر (CLI).
- Dockerfile: ملف نصي بسيط يحتوي على سلسلة من التعليمات لبناء صورة Docker. هذه التعليمات تشبه أوامر Linux القياسية.
- Image (الصورة): قالب للقراءة فقط يحتوي على التعليمات اللازمة لإنشاء حاوية. الصور هي اللبنات الأساسية للحاويات ويمكن سحبها من مستودعات مثل Docker Hub.
- Container (الحاوية): مثيل تشغيلي لصورة. الحاوية هي بيئة معزولة تشبه الآلة الافتراضية ولكنها أخف بكثير لأنها تشارك نواة Linux مع المضيف.
- Docker Desktop: تطبيق يوفر تجربة Docker متسقة عبر Windows و macOS و Linux. بالنسبة لـ Linux، فهو متاح كإصدار تجريبي ويستخدم آلة افتراضية (VM) لتشغيل Docker Engine.
أفضل الممارسات لتعزيز أمان وكفاءة Docker
لضمان تجربة Docker مثلى على نظام لينكس، من الضروري الالتزام بأفضل الممارسات المتعلقة بالأمان والأداء. هذه الإرشادات تساعد في تقليل المخاطر الأمنية وتحسين كفاءة بناء وتشغيل الحاويات.
ممارسات أمان الحاويات
- اختيار صور أساسية آمنة وموثوقة: استخدم دائمًا الصور الرسمية والمعتمدة من Docker Hub، وحدد إصدارًا معينًا (مثل ubuntu:22.04) بدلاً من latest لضمان الاستقرار وتجنب التغييرات غير المتوقعة. تجنب استخدام صور غير معروفة المصدر لتقليل سطح الهجوم.
- تقليل الامتيازات (Principle of Least Privilege): قم بتشغيل الحاويات والمراحل داخلها بأقل الامتيازات الممكنة. استخدم مستخدمين غير الروت داخل الحاويات، وقلل من إمكانيات Linux (capabilities) الممنوحة للحاوية باستخدام --cap-drop لمنع التصعيد غير المصرح به.
- تقليل سطح الهجوم: قم بتثبيت الحد الأدنى من البرامج والتبعيات الضرورية داخل الصورة. كل حزمة إضافية تزيد من حجم الصورة وتزيد من فرص وجود ثغرات أمنية.
- تجنب تسريب البيانات الحساسة: لا تقم بتضمين كلمات المرور، مفاتيح API، أو أي بيانات حساسة مباشرة في Dockerfile أو داخل الصور. استخدم متغيرات البيئة أو أدوات إدارة الأسرار (secrets management tools) لنقل هذه البيانات بأمان إلى الحاويات في وقت التشغيل.
- مراقبة الأمان والفحص: استخدم أدوات فحص صور Docker بانتظام لتحديد الثغرات الأمنية في الحزم والتبعيات داخل صورك.
ممارسات الكفاءة والأداء
- استخدام البناء متعدد المراحل (Multi-stage builds): في ملف Dockerfile، استخدم مراحل متعددة لتقليل حجم الصورة النهائية بشكل كبير. هذا يفصل بيئة البناء (التي قد تحتوي على أدوات تطوير كبيرة) عن بيئة التشغيل النهائية (التي تحتاج فقط إلى التطبيق والتبعيات الأساسية).
- استخدام ملفات .dockerignore: أنشئ ملف .dockerignore في جذر مشروعك لاستبعاد الملفات والمجلدات غير الضرورية (مثل ملفات السجل، الملفات المؤقتة، المجلدات الخاصة بالتحكم في الإصدار مثل .git) من سياق البناء. هذا يسرع عملية البناء ويقلل من حجم الصورة.
- إعادة بناء الصور بانتظام: أعد بناء صورك بانتظام للحصول على أحدث التصحيحات الأمنية والتحديثات للأنظمة الأساسية والتبعيات.
- استخدام Volumes لتخزين البيانات: لتخزين البيانات المستمرة، استخدم Docker Volumes أو ربط مجلدات من المضيف (bind mounts) للحفاظ على البيانات خارج الحاوية. هذا يمنع فقدان البيانات عند إيقاف أو إزالة الحاوية ويسمح بمشاركة البيانات بين الحاويات والمضيف.
{getCard} $type={post} $title={قد تعجبك أيضاً}
تكامل Docker مع لينكس: بيئة معزولة، أداء مستقر، وأمان معزّز
يُعتبر Docker أداة محورية في عالم تطوير البرمجيات ونشرها، ويسهم استخدامه على نظام لينكس في تحقيق أقصى قدر من الكفاءة والأمان. من خلال التثبيت الصحيح، وفهم الأوامر الأساسية، وتطبيق أفضل الممارسات الأمنية والأدائية، يمكن للمطورين والمسؤولين عن الأنظمة بناء ونشر التطبيقات في بيئات معزولة ومتسقة. إن تبني مبادئ مثل تقليل الامتيازات واستخدام البناء متعدد المراحل يضمن ليس فقط استقرار التطبيقات، بل أيضًا حمايتها من الثغرات المحتملة، مما يجعل Docker حلاً لا غنى عنه في البيئات الحديثة.
هل أعجبك المقال؟