تمرين - استرداد صورة Docker موجودة وتوزيعها محلياً
من نقاط الانطلاق الجيدة لإنشاء وتشغيل صور Docker الخاصة بك أخذ صورة موجودة من Docker Hub وتشغيلها محلياً على جهاز الكمبيوتر.
إثباتاً لمبدأ تطبيقات الشركة، عليك أن تقرر محاولة تشغيل نموذج صورة من Docker Hub. ثم تنفذ الصورة التي حددتها تطبيق .NET Core ASP.NET أساسي على الويب. بمجرد إنشاء عملية لتوزيع صورة Docker، ستتمكن من تشغيل أحد تطبيقات الويب الخاصة بشركتك باستخدام Docker.
في هذا التمرين، ستقوم بسحب صورة من Docker Hub وتشغيلها. وستتحقق من حالة Docker المحلية لفهم العناصر التي يتم توزيعها. وأخيراً، ستزيل الحاوية والصورة من جهاز الكمبيوتر.
هام
يتم إجراء هذا التمرين على جهاز الكمبيوتر لديك، وليس في Azure. لذلك، تحتاج إلى تثبيت Docker محلياً لمتابعة التمرين. تنزيل: https://hub.docker.com/editions/community/docker-ce-desktop-windows/
سحب وتشغيل نموذج تطبيق من Docker Hub
افتح نافذة موجه الأوامر على جهاز الكمبيوتر المحلي.
ادخل الرمز التالي لسحب ASP.NET Sample من سجل Docker Hub. تحتوي هذه الصورة على تطبيق ويب نموذجي طورته Microsoft، وهي تستند إلى قالب ASP.NET الافتراضي المتوفر في Visual Studio.
docker pull mcr.microsoft.com/dotnet/core/samples:aspnetappأدخل التعليمات البرمجية التالية للتحقق من تخزين الصورة محليٍا.
docker image lsيجب أن ترى مستودعاً باسم mcr.microsoft.com/dotnet/core/samples مع علامة aspnetapp.
أدخل التعليمات البرمجية التالية لبدء تشغيل التطبيق النموذجي. تعمل الإشارة -d على تشغيلها كخلفية، وتطبيق غير تفاعلي. تختص الإشارة -p بتعيين المنفذ 80 في الحاوية المُكوَنة لمنفذ 8080 محلياً. يهدف هذا الإعداد إلى تجنب التعارضات مع أي تطبيقات ويب قيد التشغيل بالفعل على الكمبيوتر. سيستجيب الأمر بمعرف سداسي عشري طويل للمثيل.
docker run -d -p 8080:80 mcr.microsoft.com/dotnet/core/samples:aspnetappافتح متصفح ويب، وأدخل رابط URL الخاص بتطبيق الويب النموذجي
http://localhost:8080. يجب أن تشاهد صفحة تشبه لقطة الشاشة أدناه.
.
فحص الحاوية في سجل Docker المحلي
في موجه الأوامر، قم بتشغيل الأمر التالي لعرض الحاويات قيد التشغيل في التسجيل المحلي.
docker psيجب أن يبدو الإخراج مشابهًا لما يلي:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 96c851831ade mcr.microsoft.com/dotnet/core/samples:aspnetapp "dotnet aspnetapp.dll" 22 minutes ago Up 22 minutes 0.0.0.0:8080->80/tcp eager_montalciniيوضح الحقل COMMAND الحاوية التي تم بدء تشغيلها من خلال تشغيل الأمر dotnet aspnetapp.dll. يستدعي هذا الأمر وقت تشغيل .NET Core لبدء تشغيل التعليمات البرمجية في aspnetapp.dll (التعليمات البرمجية لنموذج تطبيق الويب). يشير الحقل PORTS إلى أن المنفذ 80 في الصورة تم تعيينه إلى المنفذ 8080 على جهاز الكمبيوتر. يوضح الحقل STATUS أن التطبيق ما يزال قيد التشغيل. دوِّن اسم الحاوية.
شَغِل الأمر التالي لإيقاف الحاوية Docker، واستبدل العنصر النائب
<NAME>باسم الإخراج من الأمر السابق.docker container stop <NAME>تشغيل الأمر التالي للتحقق من أن الحاوية لم تعد قيد التشغيل. توضح إشارة -a أن الأمر يُظهر حالة جميع الحاويات، وليس الحاويات قيد التشغيل فقط. يجب أن يُظهر الإخراج حالة الحاويةمنتهية.
docker ps -aفي متصفح الويب، حدِث صفحة تطبيق الويب النموذجي (http://localhost:8080/). يجب أن يفشل ذلك بخطأ Connection Refused.
إزالة الحاوية والصورة من السجل المحلي
على الرغم من إيقاف الحاوية، يظل يتم تحميلها ويمكن إعادة تشغيلها. تشغيل الأمر التالي في إطار موجه الأوامر لإزالته، و استبدال
<NAME>العنصرالنائب باسم حاويتك.docker container rm <NAME>تحقق من إزالة الحاوية عن طريق تشغيل الأمر التالي. يجب ألا يظل الأمر يسرد الحاوية.
docker ps -aاسرد الصور المتوفرة حالياً على جهاز الكمبيوتر. يجب أن يُظهر الإخراج مستودع العينات.
docker image lsقم بإزالة الصورة من السجل.
docker image rm mcr.microsoft.com/dotnet/core/samples:aspnetappيجب أن يسرد الإخراج العديد من العناصر التي تم إلغاء تمييزها وحذفها. شَغِل الأمر التالي لسرد الصور مرة أخرى للتحقق من اختفاء صورة تطبيق الويب Microsoft/dotnet-samples.
docker image ls
هل تحتاج إلى مساعدة؟ راجع دليل استكشاف الأخطاء وإصلاحها الذي نقدمه أو يمكنك توفير ملاحظات معينة عبر الإبلاغ عن مشكلة.