تمرين - استرداد صورة 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

  1. ابدأ تشغيل Docker على جهاز الكمبيوتر الخاص بك.

  2. افتح نافذة موجه الأوامر على جهاز الكمبيوتر المحلي.

  3. ادخل الرمز التالي لسحب ASP.NET Sample من سجل Docker Hub. تحتوي هذه الصورة على تطبيق ويب نموذجي طورته Microsoft، وهي تستند إلى قالب ASP.NET الافتراضي المتوفر في Visual Studio.

    docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
    
  4. أدخل التعليمات البرمجية التالية للتحقق من تخزين الصورة محليٍا.

    docker image ls
    

    يجب أن تشاهد مستودعا باسم mcr.microsoft.com/dotnet/samples بعلامة aspnetapp.

  5. أدخل التعليمات البرمجية التالية لبدء تشغيل التطبيق النموذجي. تعمل الإشارة -d على تشغيلها كخلفية، وتطبيق غير تفاعلي. العلامة -p هي لتعيين المنفذ 8080 في الحاوية التي تم إنشاؤها إلى المنفذ 8080 محليا. يهدف هذا الإعداد إلى تجنب التعارضات مع أي تطبيقات ويب قيد التشغيل بالفعل على الكمبيوتر. سيستجيب الأمر بمعرف سداسي عشري طويل للمثيل.

    docker run -d -p 8080:8080 mcr.microsoft.com/dotnet/samples:aspnetapp
    
  6. افتح مستعرض ويب وأدخل عنوان URL لعينة تطبيق الويب: http://localhost:8080. يجب أن تشاهد صفحة تشبه لقطة الشاشة التالية:

    Screenshot of the sample web app running in a browser.

فحص الحاوية في سجل Docker المحلي

  1. في موجه الأوامر، قم بتشغيل الأمر التالي لعرض الحاويات قيد التشغيل في التسجيل المحلي.

    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 أن التطبيق ما يزال قيد التشغيل. دوِّن اسم الحاوية.

  2. شَغِل الأمر التالي لإيقاف الحاوية Docker، واستبدل العنصر النائب <NAME> باسم الإخراج من الأمر السابق.

    docker container stop <NAME>
    
  3. تشغيل الأمر التالي للتحقق من أن الحاوية لم تعد قيد التشغيل. توضح إشارة -a أن الأمر يُظهر حالة جميع الحاويات، وليس الحاويات قيد التشغيل فقط. يجب أن يُظهر الإخراج حالة الحاويةمنتهية.

    docker ps -a
    
  4. في متصفح الويب، حدِث صفحة تطبيق الويب النموذجي (http://localhost:8080/). يجب أن يفشل ذلك بخطأ Connection Refused.

إزالة الحاوية والصورة من السجل المحلي

  1. على الرغم من إيقاف الحاوية، يظل يتم تحميلها ويمكن إعادة تشغيلها. تشغيل الأمر التالي في إطار موجه الأوامر لإزالته، و استبدال<NAME> العنصرالنائب باسم حاويتك.

    docker container rm <NAME>
    
  2. تحقق من إزالة الحاوية عن طريق تشغيل الأمر التالي. يجب ألا يظل الأمر يسرد الحاوية.

    docker ps -a
    
  3. اسرد الصور المتوفرة حالياً على جهاز الكمبيوتر. يجب أن يُظهر الإخراج مستودع العينات.

    docker image ls
    
  4. إزالة الصورة من السجل.

    docker image rm mcr.microsoft.com/dotnet/samples:aspnetapp
    
  5. يجب أن يسرد الإخراج العديد من العناصر التي تم إلغاء تمييزها وحذفها. شَغِل الأمر التالي لسرد الصور مرة أخرى للتحقق من اختفاء صورة تطبيق الويب Microsoft/dotnet-samples.

    docker image ls