.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
- حمل Docker من: https://www.docker.com/products/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 في بيئة منعزلة، وتوفر مرونة هائلة في الانتقال من التطوير إلى الإنتاج، سواء على الأجهزة الشخصية أو على السيرفرات أو حتى في الخدمات السحابية.
تعليقات
إرسال تعليق