تمرين - استرداد صورة 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
ابدأ تشغيل Docker على جهاز الكمبيوتر الخاص بك.
افتح نافذة موجه الأوامر على جهاز الكمبيوتر المحلي.
ادخل الرمز التالي لسحب ASP.NET Sample من سجل Docker Hub. تحتوي هذه الصورة على تطبيق ويب نموذجي طورته Microsoft، وهي تستند إلى قالب ASP.NET الافتراضي المتوفر في Visual Studio.
docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
أدخل التعليمات البرمجية التالية للتحقق من تخزين الصورة محليٍا.
docker image ls
يجب أن تشاهد مستودعا باسم mcr.microsoft.com/dotnet/samples بعلامة aspnetapp.
أدخل التعليمات البرمجية التالية لبدء تشغيل التطبيق النموذجي. تعمل الإشارة -d على تشغيلها كخلفية، وتطبيق غير تفاعلي. العلامة -p هي لتعيين المنفذ 8080 في الحاوية التي تم إنشاؤها إلى المنفذ 8080 محليا. يهدف هذا الإعداد إلى تجنب التعارضات مع أي تطبيقات ويب قيد التشغيل بالفعل على الكمبيوتر. سيستجيب الأمر بمعرف سداسي عشري طويل للمثيل.
docker run -d -p 8080:8080 mcr.microsoft.com/dotnet/samples:aspnetapp
افتح مستعرض ويب وأدخل عنوان URL لعينة تطبيق الويب:
http://localhost:8080
. يجب أن تشاهد صفحة تشبه لقطة الشاشة التالية:
فحص الحاوية في سجل Docker المحلي
في موجه الأوامر، قم بتشغيل الأمر التالي لعرض الحاويات قيد التشغيل في التسجيل المحلي.
docker ps
يجب أن يبدو الإخراج مشابهًا لما يلي:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 96c851831ade mcr.microsoft.com/dotnet/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 إلى أنه تم تعيين المنفذ 8080 في الصورة إلى المنفذ 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/samples:aspnetapp
يجب أن يسرد الإخراج العديد من العناصر التي تم إلغاء تمييزها وحذفها. شَغِل الأمر التالي لسرد الصور مرة أخرى للتحقق من اختفاء صورة تطبيق الويب Microsoft/dotnet-samples.
docker image ls