تقليل حجم الصور باستخدام قواعد Slim وDistroless
قلّلوا حجم الصور النهائية باختيار صور أساس صغيرة، وإزالة أدوات البناء، واستخدام قواعد distroless أو scratch لتحميل أسرع وسطح هجوم أصغر
تقليل حجم الصور باستخدام قواعد Slim وDistroless درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
لماذا يهم حجم الصورة
تُسحب الصور الأصغر بسرعة أكبر، وتبدأ أسرع، وتكلف أقل في التخزين، وتعرّض عددًا أقل من الحزم للمهاجمين. وتحسين الحجم مكسب للأداء والأمان معًا.
اختيار صورة أساس خفيفة
الصور الافتراضية مريحة لكنها ضخمة. ويمكن أن يؤدي استبدال node:20 (نحو 1GB) بـ node:20-slim أو node:20-alpine إلى تقليل مئات الميغابايت فورًا.
FROM node:20-slimمقايضات Alpine
تتميز Alpine بصغر حجمها، لكنها تستخدم musl libc بدلًا من glibc، ما قد يؤدي أحيانًا إلى تعطّل الملفات الثنائية الأصلية. اختبر بعناية؛ فقد يكون الخيار -slim الأصغر والأكثر أمانًا في بعض الحالات.
FROM python:3.12-alpineدمج طبقات RUN
تضيف كل RUN طبقة. اربط الأوامر ذات الصلة ونظّف الملفات في الطبقة نفسها، وإلا فستظل الملفات المحذوفة تزيد حجم الطبقة السابقة.
RUN apt-get update \
&& apt-get install -y curl \
&& rm -rf /var/lib/apt/lists/*استخدم .dockerignore
يُبقي ملف .dockerignore الملفات غير الضرورية خارج سياق البناء، مثل node_modules و.git والسجلات. ويعني السياق الأصغر عمليات بناء أسرع وطبقات أصغر.
# .dockerignore
.git
node_modules
*.logمراجعة البناء متعدد المراحل
أنشئ البناء في مرحلة تحتوي على جميع المترجمات، ثم استخدم COPY --from لنسخ الناتج فقط إلى مرحلة نهائية نظيفة. ولن تُضمَّن أدوات البناء في الصورة.
FROM golang:1.22 AS build
WORKDIR /src
COPY . .
RUN go build -o app
FROM alpine:3.20
COPY --from=build /src/app /appتعرّف على Distroless
تحتوي صور Distroless على تطبيقك وبيئة تشغيله فقط، من دون shell أو مدير حزم أو ملفات ثنائية إضافية. وهي صغيرة الحجم وصعبة الاستغلال.
FROM gcr.io/distroless/static-debian12
COPY --from=build /src/app /app
ENTRYPOINT ["/app"]لا توجد صدفة، ولا مشكلة
لا تحتوي Distroless على shell، لذلك لن تعمل أوامر RUN وdocker exec sh. نفّذ كل الإعدادات في المراحل السابقة، واستخدم الوسم :debug عندما تحتاج إلى الفحص من الداخل.
قاعدة scratch
بالنسبة إلى الملفات الثنائية الثابتة بالكامل (Go وRust)، لا يضمّن FROM scratch شيئًا سوى الملف التنفيذي، وغالبًا ما يكون الحجم الإجمالي بضعة ميغابايتات.
FROM scratch
COPY --from=build /src/app /app
ENTRYPOINT ["/app"]قياس مكاسبك
استخدم docker images لمقارنة الأحجام، وdocker history لمعرفة الطبقات الأكبر. حسّن أكبر الطبقات حجمًا أولًا.
docker history myapp:latestثبّت الإصدارات، لا تستخدم latest
يجعل تثبيت وسم أو digest محدد عمليات البناء قابلة لإعادة الإنتاج، ويتجنب الزيادات المفاجئة في الحجم عندما تتغير الصورة المصدرية latest.
FROM node:20.11.1-slimتحقق سريع
ما المميز في صورة distroless؟
مراجعة
أصبح بإمكانك الآن تقليص الصور بدرجة كبيرة:
- اختر صور الأساس
-slimأو-alpineأو distroless أوscratch - اربط طبقات
RUNونظّفها، واستخدم.dockerignore - تزيل عمليات البناء متعددة المراحل أدوات البناء
- قِس الأحجام باستخدام
docker historyوثبّت الإصدارات
تعني الصور الأصغر عمليات نشر أسرع وأكثر أمانًا.
تعلم DevOps Bootcamp مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 142
- الدروس
- 568
الأسئلة الشائعة
هل درس «تقليل حجم الصور باستخدام قواعد Slim وDistroless» مجاني؟
نعم — نص درس «تقليل حجم الصور باستخدام قواعد Slim وDistroless» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «تقليل حجم الصور باستخدام قواعد Slim وDistroless»؟
قلّلوا حجم الصور النهائية باختيار صور أساس صغيرة، وإزالة أدوات البناء، واستخدام قواعد distroless أو scratch لتحميل أسرع وسطح هجوم أصغر تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «تقليل حجم الصور باستخدام قواعد Slim وDistroless»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- البناء متعدد المراحل لتحقيق الكفاءة
- الاستفادة من التخزين المؤقت للبناء
- أفضل ممارسات أمان Dockerfile
- تقليل حجم الصور باستخدام قواعد Slim وDistroless