שליטה באזור דוקר של Azure: מדריך שלב אחר שלב

לפרוייקט ATA הזה, אתה הולך לקבל הצצה לכיצד Docker ב-Azure פועל. במדריך זה ל-Docker ב-Azure, אתה הולך ללמוד על שירות תצורת מערכת נפרדת במיקרוסופט בשם Azure Container Instance (ACI).

Azure Container Instance הוא אשף Kubernetes מתארח דרך אירוח Docker ב-Azure. זה מאפשר לך לפרסם כל תמונת Docker (Windows ו-Linux) ולהפעיל אותה כמיכל. כל מיכל Docker ב-Azure מפעיל כמיכל עצמאי, באמצעות מעבד וזיכרון הוקצו לו באופן נפרד.

בפרויקט הזה, תלמד כיצד לפרסם ולהפעיל את המיכל הראשון שלך בתצורת מערכת נפרדת ב-Azure, מבוסס על תמונת מיכל ASP.NET דוגמה ממיקרוסופט בענן הציבורי של Azure.

עד סיום הפרויקט הזה, תהיה לך אתר ASP.NET רץ במיכל Docker המארח על ידי שירות Azure Container Instance.

דרישות סביבה וידע

כדי להשיג את המרב ממדריך Docker ב-Azure זה, עליך להיות לך את הבא:

  1. A local Windows 10 client with Docker Desktop installed.
  2. A Microsoft Azure account
  3. גישה לחשבון Azure עם הרשאות לפרסם מיכל ל רישום מערכת נפרדת ב-Azure
  4. ה-CLI של Windows Azure מותקן. אתה תלמד מהשורת פקודה.
  5. A beginner understanding of containers and Docker.
  6. A registered Docker ID.

אם אתה לא אוהב את הדוגמה שנבחרה במדריך זה של Azure Docker, תמיד תוכל להשתמש בתמונת קונטיינר אחרת ב־Docker Hub.

ללא יותר דברים, בואו נתחיל לבנות את הפרויקט הזה!

הרצת קונטיינר Docker

כדי למנוע תסכול מאוחר יותר כאשר משהו לא עובד, תאשר תחילה שמנוע ה־Docker פועל. כדי לעשות זאת, פתח חלון פקודות או סשן PowerShell והפעל docker info.

תוכל לראות מטה את סוג הפלט שתקבל.

Inspecting information about the local Docker installation

כדי לאמת את הרצת קונטיינר Docker, הרץ docker run hello-world. מאחורי הקלעים, פקודת ה־docker מבצעת מספר שלבים:

  1. מחפש קונטיינר בשם hello-word מקומית על המחשב שלך ב־Windows 10.
  2. כאשר לא מוחזר, היא מגיעה למאגר ה־Docker Hub הציבורי כדי לחפש את הגרסה האחרונה של קונטיינר עם השם hello-world.
  3. כאשר הקונטיינר נמצא, הוא אז מורד ממאגר ה־Docker Hub.
  4. כאשר הורד, הקונטיינר מופעל ומבצע את ההוראות להתחלה הספציפיות שסופקו בתמונה שהקונטיינר משתמש בה.

תוכל לראות כמה פלטי דוגמה מטה.

Download a sample Docker container called hello-world

התחלת קונטיינר ASP.NET דוגמתי

עכשיו שאתה יודע איך להוריד קונטיינר Docker ולהפעילו, עכשיו הורד והפעל את הקונטיינר שבו תעבוד בתוך פרויקט זה. קונטיינר זה של Docker הוא תמונת אפליקציית אינטרנט ב־ASP.Net Core.

להוריד את תמונת ה Docker של המדריך הזה ב Azure, הפעל את הפקודה הבאה:

> docker run --name aspnetcore_sample --rm -it -p 8000:80 mcr.microsoft.com/dotnet/core/samples:aspnetapp

הפקודה הזו מבצעת את הפעולות הבאות:

  1. מאחר שתמונת ה Docker לא זמינה מקומית, Docker מורידה מיכולת בשם aspnetapp ממסד נתונים ציבורי אחר המתארח על ידי Microsoft בכתובת mcr.microsoft.com בתיקייה dotnet/core/samples. מסד הנתונים mcr.microsoft.com דומה ל Docker Hub הציבורי אך מתוחזק על ידי Microsoft ומארח תמונות Docker של Microsoft בלבד.
  2. מפעיל את הקונטיינר על המחשב המקומי שלך.
  3. (-p 8000:80) – ממפה את פורט ה- TCP של הקונטיינר שמאזין ל- 80 לפורט TCP 8000. זה מאפשר לך לגשת ליישום האינטרנטי בפורט 8000 מקומית.
  4. (-it) – הקונטיינר יופעל באופן אינטראקטיבי, כלומר תופעלו מיידית לתוך הקונסולה כאשר הוא מתחיל.
  5. (—rm) – כאשר הקונטיינר נעצר, הוא יוסר.

תוכל לראות למטה את הפלט שאתה יכול לצפות בו.

Downloading a container instance from Microsoft

6.  מהדפדפן שלך, התחבר ליישום הקונטיינר הפועל על ידי התקשרות לכתובת http://localhost:8000. אתה צריך לראות את אפליקציית הרשת לדוגמה של ASP.Net

Sample ASP.NET web app

יצירת מסד נתונים ציבורי לקונטיינרים של Azure (ACR)

כאשר יש לך את ה-ASP.NET container שהורד למחשב המקומי שלך, הגיע הזמן להעביר אותו לאחסון Azure Docker עם ACI ולהריץ את ה-container הזה ב-Azure. כדי לעשות זאת, נדחוף את container הדמו ל- Azure Container Registry (ACR). ACR הוא שירות שמאפשר לך להשקיע ולהריץ Docker containers ישירות ב-Azure.

  1. התחבר ל- Azure Portal.
  2. לחץ על סמל ה-terminal בחלק העליון כדי להתחיל את Azure Cloud Shell.
Starting Azure Cloud Shell

3. ודא שבחרת ב-shell של Bash כפי שמוצג למטה.

Bash in Azure Cloud Shell

4. צור קבוצת משאבי Azure כדי לשים את מופע ACR בה באמצעות הפקודה az group create למטה.

> az group create --name <RGname> --location <Azure Region of choice>
Creating a resource group

5. עכשיו צור את ה-ACR בתוך קבוצת המשאבים באמצעות הפקודה az acr create. למטה תוכל לראות דוגמה ליצירת ACR עם SKU בסיסי על ידי הגדרת הפרמטר admin-enabled ל- true. נקבע כ- true מכיוון שזה מאפשר לך לבצע ניהול משאבים מאוחר יותר.

> az acr create --resource-group <RGname> --name <ACRname> --sku Basic
 --admin-enabled true
Creating an Azure Container Registry

–admin-enabled true

כאשר תסיים, עליך להפעיל כעת מופע ACR בתוך קבוצת המשאבים שלך. ה-Azure Docker hosting מגיע להציל!

התחברות למופע ACR מקומית

  1. עכשיו עליך לעבור מ- Azure Cloud Shell למחשב המקומי שלך ב-Windows כדי לסיים את ההגדרה.
  2. על המחשב המקומי שלך, הפעל את PowerShell או מקור פקודות בהרשאות מנהל. אני אשתמש ב-PowerShell.
  3. אמת ל-Azure עם Azure CLI על ידי הרצת az login ועקוב אחר ההוראות כדי לספק את פרטי הכניסה שלך.
Authenticating to Azure

לאחר אימות מוצלח, תראה פלט JSON מציין את המשתמש שאימתת בהצלחה.

> az acr login --name <ACR-Name> --resource-group <RG Name>
Logging onto ACR

4. לאחר מכן, אמת לאינסטנס ACR שנוצר לך לאחרונה ב-Azure Cloud Shell באמצעות פקודת az acr login על ידי הפקודה הבאה. בתמונה שמתחת תראה שאני מתחבר לאינסטנס ACR בשם nopacr1, בקבוצת משאבים של Azure NOPRG.

עדכון תג התמונה של Docker

  1. אתה עכשיו מוכן לדחוף את התמונה המקומית שלך לאינסטנס ACR שלך באירוח Docker ב-Azure או ACI. אבל עליך תחילה למלא תלות ACR. כל התמונות של Docker שנדחפות לאינסטנס ACR חייבות לכלול את שם האינסטנס ACR בשם התמונה.
Finding the ACR Docker image

מצא את מספר זיהוי התמונה או שם התמונה של Docker באמצעות הפקודה docker images.

> docker tag mcr.microsoft.com/dotnet/core/samples:aspnetapp <ACRName>.azurecr.io/<imagenameofchoice>
Updating the Docker tag

2. עדכן את תג התמונה של Docker על ידי הרצת פקודת docker tag כפי שמוצג למטה. אם אתה עוקב אחר סטנדרטי השמות, השתמש בשם ה-ACR של NOPACR1 והגדר את התג כ-nopacr1.azurecr.io. לתמונה עצמה, השתמש בשם dotnetsample.

Verifying Docker tag

3. בדוק אם התג הוחל בהצלחה באמצעות הפקודה docker images שוב. עכשיו צריך לראות שהתג עודכן.

  1. העלאת התמונה של Docker לאינסטנס ACR ואימות
> docker push <ACRName>.azurecr.io/<nameofimage>
Pushing Docker image to ACR

עליך כעת להעלות את התמונה המקומית למופע ACR באמצעות פקודת docker push כפי שמוצג למטה ולספק את התווית שם ה-DNS היכן מצויה התג ACR.

Inspecting ACR instance in Azure portal

2. לאחר העלאת התמונה, יש לוודא כי ההעברה לתג ACR בוצעה בהצלחה על ידי שימוש בפורטל של Azure על ידי ניווט אל כל השירותים —> רישום תוכניות Azure ובחירה במופע ACR שנוצר מראש.

Inspecting Docker repo

3. בתפריט לשלך בקצה השמאלי תחת הקטע שירותים, לחץ על מאגרים. התמונה של Docker שהועלתה למופע ACR שלך צריכה להופיע כאן.

Inspecting Docker image

4. לחץ על התמונה ותראה את הגרסה שלה ומידע נוסף שימושי.

הרצת מופע ה- Azure Container Instance (ACI)

  1. יצרת כעת מופע ACR, קישורת תמונת Docker לתג של ה- ACR כהפנייה והעלית את התמונה למופע ACR. כעת זה הזמן להשתמש ב- Azure Container Instance (ACI) כדי להפעיל את תמונת ה-Docker המאוחסנת במופע ה-ACR שלך.
Creating a container instance

ממשיכים מהשלב הקודם, לחץ על … ליד העדכון האחרון, ובחר הפעל מופע. זה יפתח את להבת צור מופע מכונת קונטיינר.

  • 2. מלא את השדות בתיבת צור מופע מכונת קונטיינר למטה באמצעות המידע הבא:
  • שם הקונטיינר – כל שם שתרצה להשתמש בו עבור הקונטיינר הזה
  • סוג מערכת הפעלה – לינוקס (זה תלוי בקונטיינר המקורי. אם אתה משתמש בקונטיינר זהה בפרויקט זה, יתכן שזה יהיה חלונות.)
  • מינוי – המינוי שלך ב-Azure
  • קבוצת משאבים – כל קבוצת משאבים קיימת או חדשה של Azure להוספת משכפל המיכל לתוכה

מיקום – בהתבסס על קבוצת המשאבים

Creating a container instance

עבור מדריך Docker של Azure זה עבור משכפל ASP.NET, תוכל להשאיר את כל ההגדרות האחרות ללא שינוי. בסביבת הפקה, בהתאם למה שהמשכפל מריץ, עשוי להיות נדרש לשנות את ההגדרות הללו.

Successful container instance deployment

3. לחץ אישור כדי ליצור את משכפל המיכל.
4. לאחר שמשכפל המיכל נוצר, עליך לראות דף שדומה לדוגמה למטה.

Inspecting created container instance

5. לאחר הסיום של התקנת המשכפל, פתח את ACI בפורטל על ידי ניווט אל כל השירותים —> מקרני מיכלים. פעם כאן, עיין במשכפל מיכל האזור הלאחרון שנוצר. עליך לראות את המופיע למטה.

Sample ASP.NET Core webpage

6. העתק את כתובת ה-IP בפינה הימנית-עליונה והדבק אותה בדפדפן האינטרנט. יישום האינטרנט שלך בדוגמת ASP.NET צריך להיטען ממשכפל מיכל ה-Azure שלך ולהציג דף אינטרנט כפי שמוצג למטה.

אם סיימת עם משכפל זה, תוכל להשתמש בפקודת az container delete כדי להסיר את המיכל.

מסקנה

Source:
https://adamtheautomator.com/azure-docker-tutorial/