.NET Core - استخدام Docker مع ‎.NET Core

7.3 .NET Core - استخدام Docker مع ‎.NET Core

Docker هو بيئة تشغيل خفيفة الوزن (Containerization) تتيح لك تشغيل تطبيقك في "حاوية" (Container) مع كل ما يحتاجه للعمل. في هذا الدرس سنتعلم كيف تنشئ حاوية Docker لتطبيق ASP.NET Core وتقوم بتشغيله بشكل مستقل عن النظام.


🐋 ما الذي يميز Docker؟

  • سهولة النشر في أي بيئة (Windows, Linux, Cloud)
  • بيئة تشغيل موحدة للتطبيق ومكتباته
  • أداء قريب من الأداء الأصلي (native)
  • إمكانية التشغيل داخل شبكات خاصة (Containers Networking)

🔹 1) تثبيت Docker Desktop

🔹 2) إنشاء ملف Dockerfile

في جذر مشروع ASP.NET Core، أنشئ ملف باسم Dockerfile يحتوي على التالي:


FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY . .
RUN dotnet publish -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "MyApp.dll"]

📌 غيّر MyApp.dll إلى اسم مشروعك.

🔹 3) بناء الصورة (Build Image)


docker build -t myapp:latest .

🔹 4) تشغيل الحاوية (Run Container)


docker run -d -p 8080:80 --name myapp-container myapp:latest

🔸 افتح متصفحك على: http://localhost:8080

🔹 5) أوامر مفيدة في Docker


docker ps                  # عرض الحاويات النشطة
docker stop myapp-container  # إيقاف الحاوية
docker rm myapp-container    # حذف الحاوية
docker rmi myapp             # حذف الصورة

🧪 ملاحظات مهمة

  • يفضل دائمًا استخدام Multi-stage build لتقليل حجم الصورة
  • استخدم .dockerignore لتجنب نسخ مجلدات غير ضرورية
  • يمكنك استخدام docker-compose لتشغيل أكثر من خدمة (مثل API + SQL Server)

🔹 الخلاصة

Docker هو أداة قوية تسهّل تجربة نشر وتشغيل تطبيقات .NET Core في بيئة منعزلة، وتوفر مرونة هائلة في الانتقال من التطوير إلى الإنتاج، سواء على الأجهزة الشخصية أو على السيرفرات أو حتى في الخدمات السحابية.

تعليقات

المشاركات الشائعة من هذه المدونة

HTML - Text Formatting تنسيقات النص

1.1 SQL Introduction

Entity Framework - مقدمة عن Entity Framework