0Pricing
DevOps Bootcamp · درس

إنشاء صور Docker مخصّصة

أنشئوا أول صورة Docker مخصّصة لتطبيق بسيط، مع وسمها وإصدارها بطريقة صحيحة

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

أنشئوا أول صورة Docker لكم

لماذا ننشئ صورًا مخصصة؟ لأنها تتيح لكم حزم تطبيقكم المحدد وتبعياته وإعداداته في وحدة واحدة قابلة للنقل. وهذا أمر أساسي لتحقيق الاتساق وسهولة النشر.

وتحددون طريقة إنشاء هذه الصورة باستخدام ملف يسمى Dockerfile.

إنشاء صور Docker مخصّصة — رسم توضيحي 1

تطبيق الويب البسيط الخاص بنا

سنضع تطبيق ويب بسيطًا جدًا مبنيًا باستخدام Python Flask داخل حاوية. إذ يعرض فقط العبارة "Hello from Docker!" عند زيارة عنوان الويب الخاص به.

تخيّلوا أن لدينا الملفات التالية في دليل:

  • app.py: شيفرة تطبيق Python
  • requirements.txt: يسرد تبعيات Python
  • Dockerfile: تعليمات إنشاء الصورة

شفرة تطبيق Flask

هذا هو تطبيق Flask الأساسي المكتوب بلغة Python. يستمع إلى المنفذ 5000 ويستجيب بالرسالة "Hello from Docker!".

يمكنكم تشغيله محليًا (بعد تثبيت Flask) لمشاهدة التطبيق أثناء عمله!

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello from Docker!'

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0')

تحديد التبعيات

يحتاج تطبيقنا إلى مكتبة Flask. ندرجها في requirements.txt. يخبر هذا الملف Docker (ومدير الحزم الخاص بـ Python، وهو pip) بما يجب تثبيته.

يضمن ذلك احتواء صورة Docker على جميع المكتبات اللازمة لتشغيل التطبيق.

Flask==2.3.2

بنية Dockerfile

إن Dockerfile ملف نصي يحتوي على تعليمات لإنشاء صورة. تنشئ كل تعليمة طبقةً. إليكم ما سنستخدمه:

  • FROM: يحدد الصورة الأساسية (مثل Python).
  • WORKDIR: يحدد دليل العمل داخل الحاوية.
  • COPY: ينسخ الملفات من جهازكم المحلي إلى الصورة.
  • RUN: ينفذ الأوامر (مثل تثبيت التبعيات).
  • EXPOSE: يُعلم Docker بالمنافذ التي تستمع إليها الحاوية.
  • CMD: يحدد الأمر الافتراضي الذي يُشغّل عند بدء الحاوية.

إنشاء Dockerfile

إليكم Dockerfile الكامل لتطبيق Flask الخاص بنا. ضعوا هذا الملف في الدليل نفسه الذي يحتوي على app.py وrequirements.txt.

# Use an official Python runtime as a parent image
FROM python:3.9-slim-buster

# Set the working directory in the container
WORKDIR /app

# Copy the current directory contents into the container at /app
COPY requirements.txt .
COPY app.py .

# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# Make port 5000 available to the world outside this container
EXPOSE 5000

# Run app.py when the container launches
CMD ["python", "app.py"]

الأمر `docker build`

حان الآن وقت إنشاء صورتنا! افتحوا الطرفية في الدليل الذي توجد فيه ملفات Dockerfile والتطبيق.

تضيف العلامة -t وسمًا إلى صورتنا يتضمن اسمًا (my-flask-app) وإصدارًا (1.0). تشير . إلى أن Docker يستخدم الدليل الحالي كسياق للإنشاء.

docker build -t my-flask-app:1.0 .

التحقق من الصورة الجديدة

بعد اكتمال الإنشاء، يمكنكم التحقق من وجود الصورة الجديدة عن طريق عرض جميع صور Docker المحلية.

ابحثوا في الناتج عن my-flask-app بالوسم 1.0.

docker images

تشغيل حاوية التطبيق

حان وقت مشاهدة تطبيقكم أثناء عمله! استخدموا docker run لإنشاء حاوية من صورتكم وبدء تشغيلها.

تربط -p 5000:5000 المنفذ 5000 على جهازكم المضيف بالمنفذ 5000 داخل الحاوية. ويشغّل -d الحاوية في الوضع المنفصل (في الخلفية).

docker run -d -p 5000:5000 my-flask-app:1.0

زوروا http://localhost:5000 في متصفحكم لمشاهدة الرسالة "Hello from Docker!".

أفضل ممارسات وضع الوسوم للصور

تُعد الوسوم ضرورية لإدارة الإصدارات المختلفة من صوركم. ومن الممارسات الشائعة استخدام الإصدار الدلالي (مثل 1.0.0 و2.1.5) بالإضافة إلى وسم latest.

يمكنكم إضافة عدة وسوم إلى صورة باستخدام docker tag:

docker tag my-flask-app:1.0 my-flask-app:latest

يتيح لكم ذلك الإشارة إلى الصورة نفسها باستخدام أسماء مختلفة، مما يمنحكم مرونة أكبر عند النشر.

تحقق سريع

تأملوا Dockerfile وأمر الإنشاء التاليين:

# Dockerfile content
FROM alpine:latest
WORKDIR /app
COPY . .
CMD ["echo", "Hello"]

docker build -t my-app:v1 .

أي العبارات التالية صحيحة بشأن الأمر docker build -t my-app:v1 .؟

مراجعة: الصور المخصصة

أحسنتم! لقد تعلمتم كيفية:

  • إعداد تطبيق بسيط لوضعه في حاوية.
  • كتابة Dockerfile أساسي باستخدام التعليمات الرئيسية (FROM وWORKDIR وCOPY وRUN وEXPOSE وCMD).
  • إنشاء صورة Docker مخصصة باستخدام docker build -t.
  • التحقق من صورتكم باستخدام docker images.
  • تشغيل حاوية من صورتكم المخصصة باستخدام docker run -p.
  • فهم أهمية وضع الوسوم على الصور وإدارة إصداراتها.

سنتعمق بعد ذلك في بنية صور Docker باستخدام الطبقات، وفي تقنيات تحسين حجمها ومدة إنشائها!

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

هل درس «إنشاء صور Docker مخصّصة» مجاني؟

نعم — نص درس «إنشاء صور Docker مخصّصة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ماذا ستتعلم في «إنشاء صور Docker مخصّصة»؟

أنشئوا أول صورة Docker مخصّصة لتطبيق بسيط، مع وسمها وإصدارها بطريقة صحيحة تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟

لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «إنشاء صور Docker مخصّصة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟

نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. فهم Dockerfiles
  2. إنشاء صور Docker مخصّصة
  3. طبقات الصور وتحسينها
  4. البناء متعدد المراحل والصور الأصغر
← العودة إلى DevOps Bootcamp