دليل المبتدئين إلى Docker: ابدأ بسرعة في تحويل تطبيقاتك إلى حاويات

2/18/2026
6 min read
```html

دليل المبتدئين إلى Docker: ابدأ بسرعة في تحويل تطبيقاتك إلى حاويات

أصبح Docker جزءًا لا يتجزأ من تطوير البرامج الحديثة ونشرها. على الرغم من المناقشات التي لا حصر لها حول Kubernetes، إلا أن Docker لا يزال الأداة المفضلة للعديد من الشركات لإنشاء تطبيقاتها واختبارها ونشرها. ستأخذك هذه المقالة بسرعة عبر أساسيات Docker، وتفهم مفاهيمها الأساسية، وتقدم مثالًا عمليًا لمساعدتك على البدء في تحويل تطبيقاتك إلى حاويات.

مفاهيم Docker الأساسية

قبل البدء في الممارسة العملية، من الضروري فهم بعض مفاهيم Docker الأساسية:

  • الصورة (Image): الصورة عبارة عن قالب للقراءة فقط يحتوي على كل ما هو مطلوب لتشغيل التطبيق: التعليمات البرمجية وبيئة وقت التشغيل وأدوات النظام والمكتبات والتبعيات. إنه مشابه لصورة الجهاز الظاهري، ولكنه أخف وزنًا.
  • الحاوية (Container): الحاوية هي مثيل قيد التشغيل تم إنشاؤه من صورة. إنه مثيل لوقت تشغيل الصورة، ويحتوي على التطبيق وجميع تبعياته. الحاويات معزولة عن بعضها البعض، ولها نظام الملفات والعمليات ومساحة الشبكة الخاصة بها.
  • Docker Hub: Docker Hub هو مستودع صور عام، يمكنك من خلاله تنزيل الصور المبنية مسبقًا، أو تحميل صورك الخاصة. إنه مشابه لـ GitHub، ولكنه مخصص لصور Docker.
  • Dockerfile: Dockerfile هو ملف نصي يحتوي على جميع التعليمات لإنشاء صورة Docker. من خلال كتابة Dockerfile، يمكنك أتمتة عملية إنشاء الصورة.
  • Docker Compose: Docker Compose هي أداة لتعريف وتشغيل تطبيقات Docker متعددة الحاويات. يسمح لك بتكوين خدمات التطبيق باستخدام ملف YAML، ثم استخدام أمر واحد لبدء أو إيقاف جميع الخدمات.

تثبيت Docker

أولاً، تحتاج إلى تثبيت Docker. يوفر Docker حزم تثبيت لأنظمة تشغيل مختلفة. قم بزيارة موقع Docker الرسمي، واتبع التعليمات المناسبة للتثبيت.

بعد التثبيت، يمكنك التحقق من تثبيت Docker بشكل صحيح عن طريق تشغيل الأمر docker --version.

تحويل تطبيق Python بسيط إلى حاوية

سنقوم بإنشاء تطبيق Python بسيط، واستخدام Docker لتحويله إلى حاوية.

1. إنشاء تطبيق Python

قم بإنشاء ملف باسم app.py، يحتوي على الكود التالي:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
 return "Hello, Docker!"

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

سيعيد تطبيق Flask البسيط هذا "Hello, Docker!" على المسار الجذر /.

2. إنشاء ملف requirements.txt

يعتمد التطبيق على مكتبة Flask، ونحتاج إلى إنشاء ملف requirements.txt للإعلان عن هذه التبعيات.

Flask

3. إنشاء Dockerfile

قم بإنشاء ملف باسم Dockerfile، وأضف المحتوى التالي:

# استخدم صورة Python الرسمية كصورة أساسية
FROM python:3.9-slim-buster

# قم بتعيين دليل العمل
WORKDIR /app

# انسخ ملف requirements.txt إلى دليل العمل
COPY requirements.txt .

# قم بتثبيت التبعيات
RUN pip install --no-cache-dir -r requirements.txt
# 将应用程序代码复制到工作目录 COPY app.py . # 暴露端口 5000 EXPOSE 5000 # 定义启动命令 CMD ["python", "app.py"] ``` **Dockerfile 说明:** * `FROM python:3.9-slim-buster`: تحديد الصورة الأساسية كإصدار مبسط من Python 3.9. * `WORKDIR /app`: تعيين دليل العمل داخل الحاوية إلى `/app`. * `COPY requirements.txt .`: نسخ ملف `requirements.txt` من الدليل الحالي إلى دليل `/app` في الحاوية. * `RUN pip install --no-cache-dir -r requirements.txt`: تشغيل الأمر `pip` داخل الحاوية لتثبيت التبعيات المحددة في ملف `requirements.txt`. يمكن للمعامل `--no-cache-dir` تقليل حجم الصورة. * `COPY app.py .`: نسخ ملف `app.py` من الدليل الحالي إلى دليل `/app` في الحاوية. * `EXPOSE 5000`: الإعلان عن أن الحاوية ستستمع إلى المنفذ 5000. * `CMD ["python", "app.py"]`: تحديد الأمر الذي سيتم تنفيذه عند بدء تشغيل الحاوية. ### 4. 构建 Docker 镜像 في الدليل الذي يحتوي على `Dockerfile`، قم بتشغيل الأمر التالي لإنشاء صورة Docker: ```bash docker build -t my-python-app . ``` * `docker build`: أمر إنشاء الصورة. * `-t my-python-app`: تحديد اسم للصورة (`my-python-app`). * `.`: تحديد الدليل الذي يوجد به Dockerfile (الدليل الحالي). قد تستغرق عملية الإنشاء بعض الوقت، اعتمادًا على سرعة الشبكة وحجم التبعيات. ### 5. 运行 Docker 容器 استخدم الأمر التالي لتشغيل حاوية Docker: ```bash docker run -d -p 5000:5000 my-python-app ``` * `docker run`: أمر تشغيل الحاوية. * `-d`: تشغيل الحاوية في وضع منفصل (تشغيل في الخلفية). * `-p 5000:5000`: تعيين المنفذ 5000 على المضيف إلى المنفذ 5000 في الحاوية. * `my-python-app`: تحديد اسم الصورة المراد استخدامها. ### 6. 验证应用程序 في المتصفح، قم بزيارة `http://localhost:5000`، يجب أن ترى "Hello, Docker!"。 ### 7. 停止和删除容器 استخدم الأمر التالي لإيقاف الحاوية: ```bash docker stop ``` `` يمكنك عرض `docker ps` الأمر. استخدم الأمر التالي لحذف الحاوية: ```bash docker rm ``` ## Docker Compose 入门 إذا كان تطبيقك يتكون من خدمات متعددة، يمكنك استخدام Docker Compose لإدارتها. ### 1. 创建 `docker-compose.yml` 文件 قم بإنشاء ملف باسم `docker-compose.yml`، وأضف المحتوى التالي: ```yaml version: "3.9" services: web: image: my-python-app ports: - "5000:5000" ``` **docker-compose.yml 说明:** * `version: "3.9"`: يحدد إصدار ملف Docker Compose. * `services`: يحدد خدمات التطبيق. * `web`: يحدد خدمة باسم "web". * `image: my-python-app`: يحدد الصورة التي تستخدمها الخدمة. * `ports`: يحدد تعيينات المنافذ. ### 2. تشغيل التطبيق في الدليل الذي يحتوي على ملف `docker-compose.yml`، قم بتشغيل الأمر التالي لبدء تشغيل التطبيق: ```bash docker-compose up -d ``` * `docker-compose up`: أمر لبدء تشغيل التطبيق. * `-d`: يقوم بتشغيل الحاويات في وضع منفصل (detached mode). ### 3. إيقاف التطبيق استخدم الأمر التالي لإيقاف التطبيق: ```bash docker-compose down ``` ## أفضل ممارسات أمان Docker كما يتضح من المناقشة، فإن أمان صور Docker يمثل مشكلة مهمة. فيما يلي بعض أفضل ممارسات أمان Docker: * **استخدام الصور الرسمية:** استخدم الصور المقدمة رسميًا قدر الإمكان، حيث يتم فحص هذه الصور وصيانتها بشكل عام بحثًا عن الأمان. * **فحص ثغرات الصور:** استخدم أدوات مثل Trivy لفحص الثغرات الأمنية المعروفة في الصور وتحديث الصور في الوقت المناسب. * **استخدام مبدأ أقل الامتيازات:** تجنب تشغيل الحاويات كمستخدم root. * **تقييد موارد الحاوية:** استخدم cgroups لتقييد استخدام وحدة المعالجة المركزية والذاكرة للحاوية. * **تحديث الصور بانتظام:** حافظ على تحديث الصور لإصلاح الثغرات الأمنية. * **استخدام أدوات الفحص الأمني:** يمكن دمج أدوات مثل Snyk و Clair في عملية CI/CD الخاصة بك لفحص ثغرات الصور تلقائيًا. ## خاتمةتقدم هذه المقالة دليلًا سريعًا للبدء في استخدام Docker، وتغطي المفاهيم الأساسية وخطوات التثبيت ومثالًا بسيطًا لتطبيق Python يتم تحويله إلى حاوية. من خلال تعلم هذه الأساسيات، يمكنك البدء في استخدام Docker لبناء واختبار ونشر تطبيقاتك. تذكر أن الأمان أمر بالغ الأهمية، ويجب عليك دائمًا الانتباه إلى أمان صور Docker واتخاذ الإجراءات المناسبة لحماية تطبيقاتك. على الرغم من أن Kubernetes قوية في تنسيق الحاويات على نطاق واسع، إلا أن Docker لا يزال حلاً بسيطًا وفعالًا في العديد من السيناريوهات. من خلال إتقان Docker، ستكون في وضع أفضل لمواجهة تحديات تطوير البرامج الحديثة ونشرها. # مثال على Dockerfile FROM python:3.9-slim-buster WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD ["python", "app.py"] docker build -t my-python-app . docker run -p 8000:8000 my-python-app
Published in Technology

You Might Also Like

كيفية استخدام تقنيات الحوسبة السحابية: دليل كامل لبناء بنية تحتية سحابية أولى لكTechnology

كيفية استخدام تقنيات الحوسبة السحابية: دليل كامل لبناء بنية تحتية سحابية أولى لك

[[HTMLPLACEHOLDER0]] [[HTMLPLACEHOLDER1]] [[HTMLPLACEHOLDER2]] [[HTMLPLACEHOLDER3]] [[HTMLPLACEHOLDER4]] [[HTMLPLACEHOLD...

تحذير! والد Claude Code يقول بصراحة: بعد شهر، لن نحتاج إلى وضع التخطيط، وستختفي لقب مهندس البرمجياتTechnology

تحذير! والد Claude Code يقول بصراحة: بعد شهر، لن نحتاج إلى وضع التخطيط، وستختفي لقب مهندس البرمجيات

تحذير! والد Claude Code يقول بصراحة: بعد شهر، لن نحتاج إلى وضع التخطيط، وستختفي لقب مهندس البرمجيات مؤخراً، أصبحت مقابل...

2026年 Top 10 深度学习资源推荐Technology

2026年 Top 10 深度学习资源推荐

2026年 Top 10 深度学习资源推荐 随着深度学习在各个领域的迅速发展,越来越多的学习资源和工具涌现出来。本文将为您推荐2026年最值得关注的十个深度学习资源,帮助您在这一领域中快速成长。 1. Coursera Deep Learn...

2026年 Top 10 AI 代理:核心卖点解析Technology

2026年 Top 10 AI 代理:核心卖点解析

[[HTMLPLACEHOLDER0]] [[HTMLPLACEHOLDER1]] [[HTMLPLACEHOLDER2]] [[HTMLPLACEHOLDER3]] [[HTMLPLACEHOLDER4]] [[HTMLPLACEHOLD...

أفضل 10 أدوات AI لعام 2026: إطلاق العنان للإمكانات الحقيقية للذكاء الاصطناعيTechnology

أفضل 10 أدوات AI لعام 2026: إطلاق العنان للإمكانات الحقيقية للذكاء الاصطناعي

أفضل 10 أدوات AI لعام 2026: إطلاق العنان للإمكانات الحقيقية للذكاء الاصطناعي في عصر التطور التكنولوجي السريع اليوم، أصبح...

2026年 Top 10 AWS工具和资源推荐Technology

2026年 Top 10 AWS工具和资源推荐

2026年 Top 10 AWS工具和资源推荐 在快速发展的云计算领域,Amazon Web Services (AWS) 一直是领军者,提供丰富的服务和工具,帮助开发者、企业和技术专家在云上有效工作。以下是2026年值得关注的十大AWS工...