أفضل ممارسات أمان Dockerfile
طبّقوا إجراءات أمنية داخل Dockerfiles لتقليل الثغرات والحد من سطح الهجوم
أفضل ممارسات أمان Dockerfile درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
أمِّن ملفات Dockerfile لديك
مرحبًا بك في أفضل ممارسات أمان Dockerfile! يبدأ التطبيق الآمن بأساس آمن.
لا يقتصر Dockerfile لديك على كونه نصًا برمجيًا للإنشاء؛ بل هو مخطط لأمان تطبيقك. وقد تؤدي الممارسات السيئة فيه إلى ثغرات أمنية كبيرة.
في هذا الدرس، سنستكشف الاستراتيجيات الأساسية لتحصين صور Docker وتقليل أسطح الهجوم المحتملة.

ابدأ بصور أساس موثوقة
تُعد تعليمة FROM خط دفاعك الأول. اختر دائمًا صور أساس رسمية تتم صيانتها جيدًا من مصادر موثوقة مثل Docker Hub.
- الصور الرسمية: تم التحقق من هذه الصور وتحديثها بانتظام.
- الوسوم المحددة: تجنب
latest. استخدم وسوم إصدارات محددة، مثلalpine:3.18، لضمان القدرة على التنبؤ والاستقرار. - الصور المصغرة: اختر إصدارات 'slim' أو 'alpine'. فهي تحتوي على عدد أقل من الحزم، مما يعني وجود عدد أقل من الثغرات المحتملة.
اختيار صورة أساس آمنة
تعرّف على كيفية تحسين الأمان من خلال اختيار صورة أساس مصغرة ومحددة. فهذا يقلل عدد الحزم والأدوات التي يمكن استغلالها.
FROM alpine:3.18
# This is better than:
# FROM ubuntu:latest
# FROM python:latest
# Alpine is a minimal Linux distribution,
# making the image smaller and more secure.قلّل حجم الصورة
يزيد كل ملف أو حزمة أو تبعية تضيفها إلى صورتك من "سطح الهجوم". وكلما قل عدد مكونات البرامج الموجودة، قل عدد الثغرات المحتملة.
ثبّت فقط ما هو ضروري تمامًا لتشغيل تطبيقك. وأزل أدوات الإنشاء والملفات المؤقتة بعد أن تنتفي الحاجة إليها.
نظّف الملفات بعد التثبيت
عند تثبيت الحزم، احرص دائمًا على تنظيف ذاكرات التخزين المؤقت لمدير الحزم وإزالة الملفات غير الضرورية. فهذا يقلل الحجم النهائي للصورة ويزيل تسريبات المعلومات المحتملة.
بالنسبة إلى الصور المستندة إلى Debian، مثل Ubuntu، استخدم apt-get clean وأزل /var/lib/apt/lists/* في تعليمة RUN نفسها.
FROM debian:stable-slim
RUN apt-get update && \
apt-get install -y --no-install-recommends \
curl \
git && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# All in one RUN command to leverage Docker's caching and reduce layers.لا تشغّل العمليات كمستخدم root
افتراضيًا، تعمل العمليات داخل حاوية Docker باستخدام المستخدم root. ويمثل ذلك خطرًا أمنيًا كبيرًا!
إذا تمكن مهاجم من السيطرة على حاويتك، فسيحصل على امتيازات root، مما قد يسمح له بالخروج من الحاوية أو اختراق النظام المضيف.
أنشئ دائمًا مستخدمًا مخصصًا لا يملك صلاحيات root، ثم انتقل إليه باستخدام تعليمة USER.
إعداد مستخدم لا يملك صلاحيات root
إليك كيفية إنشاء مستخدم جديد وإرشاد Docker إلى تشغيل الأوامر اللاحقة باستخدام هذا المستخدم. ويحد ذلك بدرجة كبيرة من الأضرار المحتملة إذا اختُرقت الحاوية.
FROM alpine:3.18
# Create a non-root user and group
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
# Switch to the non-root user
USER appuser
CMD ["echo", "Hello from non-root user!"]لا تضع الأسرار في Dockerfile
لا تضع أبدًا معلومات حساسة، مثل مفاتيح API أو كلمات مرور قواعد البيانات أو المفاتيح الخاصة، بشكل ثابت داخل Dockerfile، ولا تلتزم بها ضمن صورتك.
يمكن لأي شخص لديه صلاحية الوصول إلى الصورة استخراج هذه الأسرار بسهولة، حتى إذا حذفتها في طبقة لاحقة.
بدلًا من ذلك، استخدم أساليب آمنة مثل Docker Secrets أو متغيرات البيئة للبيانات غير الحساسة أو Kubernetes Secrets أثناء التشغيل.
فضّل COPY على ADD
تنسخ كل من تعليمتَي COPY وADD الملفات إلى صورتك، لكن يُفضّل استخدام COPY عمومًا لأسباب تتعلق بالأمان والوضوح.
COPY: تنسخ الملفات أو المجلدات المحلية فقط. وهي مباشرة ويمكن التنبؤ بسلوكها.ADD: يمكنها أيضًا جلب الملفات من عناوين URL واستخراج الأرشيفات المضغوطة تلقائيًا، مثل tar وgzip. وقد تؤدي هذه الوظائف الإضافية إلى مخاطر أمنية محتملة، مثل تنزيل محتوى غير موثوق أو استخراج أرشيفات ضارة.
التزم باستخدام COPY ما لم تكن بحاجة محددة إلى الميزات المتقدمة في ADD وتفهم مخاطرها.
فحص الأمان
أي من ممارسات Dockerfile التالية تُعد خطوة أساسية في تقليل سطح الهجوم والحد من الثغرات المحتملة؟
رحلتك نحو Dockerfile آمن
أحسنت! لقد تعلمت أفضل ممارسات أمان Dockerfile الأساسية التي تشكل أساس إنشاء حاويات آمنة:
- ابدأ بصور أساس موثوقة ومصغرة: استخدم صورًا رسمية ومحددة وخفيفة.
- قلّل حجم الصورة: ثبّت ما تحتاج إليه فقط ونظّف الملفات بعد التثبيت.
- شغّل العمليات باستخدام مستخدم لا يملك صلاحيات root: قلّل الامتيازات للحد من أثر الاختراقات المحتملة.
- تجنب الأسرار: لا تضع البيانات الحساسة بشكل ثابت في Dockerfile.
- فضّل `COPY` على `ADD`: اختر تعليمة `COPY` الأكثر قابلية للتنبؤ والأمان.
بتطبيق هذه الممارسات، ستعزز بشكل كبير الوضع الأمني لتطبيقاتك الموجودة في حاويات!
الأسئلة الشائعة
هل درس «أفضل ممارسات أمان Dockerfile» مجاني؟
نعم — نص درس «أفضل ممارسات أمان Dockerfile» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «أفضل ممارسات أمان Dockerfile»؟
طبّقوا إجراءات أمنية داخل Dockerfiles لتقليل الثغرات والحد من سطح الهجوم تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «أفضل ممارسات أمان Dockerfile»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- البناء متعدد المراحل لتحقيق الكفاءة
- الاستفادة من التخزين المؤقت للبناء
- أفضل ممارسات أمان Dockerfile
- تقليل حجم الصور باستخدام قواعد Slim وDistroless