PracticU

הרצה ראשונה של Container

בלי כתוביותעם כתוביות
PracticU › קורס Docker - עם Swarm Cluster › הרצה ראשונה של Container
מילון מושגים:
קונטיינר - חבילה קלה ומבודדת שאורזת אפליקציה עם כל תלויותיה, ורצה באופן אחיד בכל סביבה, למשל ב-Docker.
Docker Image - תבנית לקריאה בלבד שמכילה אפליקציה ותלויותיה, וממנה מריצים קונטיינרים ב-Docker.
IIS - שרת האינטרנט של מיקרוסופט (Internet Information Services), המריץ אתרים ויישומי אינטרנט על Windows.
Docker - פלטפורמה להרצת אפליקציות בתוך קונטיינרים מבודדים וקלים, כדי שירוצו באופן אחיד בכל סביבה.
CMD - שורת הפקודה הקלאסית של Windows (Command Prompt), להרצת פקודות ותוכניות בממשק טקסטואלי.
האש - פונקציה שממירה מידע לערך קצר באורך קבוע. שינוי קטן בקלט משנה את התוצאה, והיא חד-כיוונית.
.NET - פלטפורמת פיתוח של מיקרוסופט להרצת יישומים בשפות כמו C#, הכוללת ספריות וסביבת ריצה משותפות.
שורת פקודה - ממשק טקסטואלי שבו מקלידים פקודות למערכת ההפעלה ומקבלים תגובה בטקסט, במקום להשתמש בעכבר.

הרצה ראשונה של Container
השיעור מפעיל את הקונטיינר הראשון: מושכים אימג' רשמי של IIS מ-Docker Hub, מריצים אותו ובודקים שאתר האינטרנט עובד.
פקודות בסיסיות
1. מבנה הפקודה: docker, אחריה אופציות שאינן חובה, ואז הפקודה עצמה, לדוגמה docker container ls.
2. pull ו-run: pull מוריד אימג' ממאגר מרכזי, ו-run מפעיל קונטיינר חדש מתוך אימג'.
3. ps: docker ps מציג את הקונטיינרים שרצים, ו-docker ps -a מציג גם את אלה שנעצרו. docker ps הוא קיצור דרך (alias) של docker container ls.
4. exec: docker container exec -it מריץ פקודה בתוך קונטיינר פעיל, בדוגמה cmd.
5. commit: יוצר אימג' חדש מתוך קונטיינר ששונה.
הרצת IIS
6. Docker Hub: מאגר מרכזי של אימג'ים, כולל אימג'ים רשמיים של היצרנים. בשיעור נבחר האימג' של Microsoft IIS.
7. הרצה: docker container run עם מיפוי פורט מהמחשב לקונטיינר, ושם האימג' עם תגית latest.
8. הורדה: האימג' לא קיים מקומית, ולכן הוא יורד אוטומטית. האימג' מורכב משכבות (layers), וכל שכבה מזוהה לפי hash, כך שניתן לוודא שהקבצים לא שונו.
9. שכבות משותפות: שכבות כמו קבצי .NET או Windows יכולות לשמש כמה קונטיינרים, כי הן לקריאה בלבד.
10. בדיקה: גולשים לכתובת השרת בדפדפן ורואים את האתר.
ניהול קונטיינרים
11. עצירה והפעלה: docker container stop ו-start. הקבצים שנשמרו בקונטיינר נשארים אחרי עצירה.
12. מחיקה: docker container rm מוחק את הקונטיינר ואת השינויים שנעשו בו. docker rmi מוחק את האימג'.
13. שינוי בקונטיינר: exec -it עם cmd פותח שורת פקודה בתוך הקונטיינר. שינוי בקובץ של האתר משתקף רק בקונטיינר הזה, ולא בקונטיינר אחר שהורץ מאותו אימג'.
שימו לב
אם התהליך הראשי בתוך הקונטיינר מסתיים, הקונטיינר נעצר. לכן כדי לצאת מהקונטיינר בלי לעצור אותו, לוחצים Ctrl+P ואז Ctrl+Q, ולא כותבים exit.
בשיעור הבא נראה איך מפרסמים אימג' שנוצר.
השיעור הבא בקורס: Publish Image

פרקי ההרצאה: הרצה ראשונה של Container

  1. 00:00

    בדיקת תקינות Docker ב-PowerShell

  2. 01:17

    שרת IIS כקונטיינר במקום התקנה מקומית

  3. 03:08

    אימג' כאוסף שכבות ופקודת run

  4. 04:06

    פקודות start, stop ו-rm

  5. 06:09

    הרצת פקודות בתוך קונטיינר פעיל (exec)

  6. 07:24

    Volumes וחיבור לדיסק הפיזי

  7. 09:02

    מאגר Docker Hub והאימג'ים הרשמיים

  8. 11:48

    הרצת IIS מהאימג' הרשמי של Microsoft

תמלול ההרצאה: הרצה ראשונה של Container

הטקסט המלא של הדקות הראשונות בהרצאה «הרצה ראשונה של Container» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    טוב חברים, בהרצאה הזאת אנחנו נתקין סוף סוף קונטיינר, נפעיל אותו ואנחנו נכנסים ל-PowerShell ובודקים שדוקר שלנו עובד והקונטיינרים עובדים. מה שאנחנו רואים פה שיש לנו גם את החלק של הקליינט שהצליח לעבוד וגם את החלק של השרת שהצליח לעבוד כאשר אני מזכיר לכם שהשרת זה סרוויס שרץ ברקע והסרוויס הזה נותן פקודות לתוך מערכת הפעלה,

  2. 00:35

    בתוך מערכת הפעלה זה נקרא קונטיינר. שמבודד את התהליך. דוקר זה מנוע שמנהל את הקונטיינרים. דוקר זה מנוע ניהול. לפני שדרך אגב היה מנוע ניהול של דוקר, מייקרוסופט עשו מנוע ניהול משלהם, ובסוף הם החליטו שמנוע הניהול של חברת דוקר יותר טוב, וחתמו איתם הסכם, ודוקר מאושרים מזה נראה

  3. 01:00

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

  4. 01:21

    זאת אומרת, שרת ווב שאני הולך להתקין עכשיו ירוץ בתוך הקונטיינר. כשאני מזכיר לכם קונטיינר זה כמו מכונה וירטואלית בלי Windows משלה.

  5. 01:30

    היא מנצלת את ה-Windows של המחשב הפיזי ואז זה חוסך להתקנה של Windows בתוך Windows כאשר שניהם אותו דבר. אז אין לי פה את האתר ווב ואני צריך להוריד רק את הקבצים שנדרשים ל-IS.

  6. 01:53

    אז קודם כל בואו נתחיל לחקור פקודת דוקר. בתוך פקודת דוקר יש לנו, בואו נראה מה יש לנו. יש לנו פה מבנה הבא, דוקר, פקודת דוקר, אחרי זה כל מיני אופצ'אנס שהם לא חובה כי הם בסוגריים מרובעים, ואחרי זה קומנד, פקודה, שזה חלק חובה.

  7. 02:14

    אופצ'אנס, יש לנו פה כל מיני אופציות שכרגע לא נעבור עליהן, ואחרי שיש לנו אופשיאנס, יש לנו פה קומנדס. אתם רואים קומנדס, יש מנג'מנט קומנדס ויש קומנדס רגילים, פקודות רגילות.

  8. 02:35

    הלאה. מה זה הפקודות? לדוגמה, פקודה פול, למשוך אימג' של מכונה וירטואלית, כמו טמפלט של מכונה וירטואלית, מרפוזיטורים ממרכז, ממאגר המרכזי.

  9. 02:56

    שוב, פול זה למשוך אימג' של מכונה וירטואלית, של קונטיינר, מתוך מאגר מרכזי שיש באינטרנט או שאני יכול להקים אותו בתוך החברה משל עצמי.

  10. 03:08

    פוש זה לדחוף לשם את האימג' שבניתי, קונטיינר ששיניתי ובניתי. עכשיו, אנחנו נעשה עכשיו פול ונמשוך אימג' מוכן, תכף אני אראה לכם.

  11. 03:20

    ראן זה להריץ קונטיינר חדש מתוך האימג', זאת אומרת להפעיל מכונה וירטואלית מתוך אימג' מסוים. אימג' זה בעצם הקבצים שנדרשים לאותה תוכנה יחד עם כל ה-DLLים שנדרשים וקובץ שמתאר את כל השכבות שצריך, את כל הקבצים, הם מגיעים בשכבות כדי שיהיה אפשר לנצל אותם בין כמה קונטיינרים במקביל.

  12. 03:49

    תכף נדבר על זה ונראה את זה, את כל השכבות האלו. ככה למעשה אותו Windows אפשר לנצל כמה פעמים בכל מיני קונטיינרים שונים. למעשה קונטיינר זה אוסף של קבצים.

  13. 04:06

    סטארט זה להפעיל קונטיינר שעצרנו אותו כמו שעשינו סטופ וסטארט למכונה וירטואלית. אומרים סטארט וסטופ לכל מכונה וירטואלית לכל קונטיינר יש תגית שזה מאוד מאוד חשוב ורז'ן דרך אגב ראינו דוקר ורז'ן rm זה למחוק קונטיינר rmi זה למחוק לא רק את הקונטיינר למחוק את האימג' שממנו עשו את הקונטיינר למחוק את הקבצים שמהם מייצרים את הקונטיינרים אנחנו דרך אגב

  14. 04:40

    יכולים לעשות קונטיינר משלנו ואחרי זה להפוך אותו לאימג' ולחלק לאחרים ההבדל בין אימג' לקונטיינר שאימג' הוא בריד אונלי ולקריאה בלבד וממנו מייצרים הרבה קונטיינרים בקונטיינר אפשר לכתוב וזה נשמר בצד כמו שכבות כאלו של עוגה טוב אז זה ככה על רגל אחת אתם רואים ps זה רשימה של כל הקונטיינרים שיש לי כרגע כל המכונות

  15. 05:08

    הווירטואליות שיש לי כרגע אם אתם שואלים אותי האם יש ממשק גרפי שמנהל את כל זה יש אבל אנחנו מתחילים מלמטה אחרי זה גם אני אראה לכם ממשקים גרפיים שהם בעצם מנהלים את הקונטיינרים ברמה גרפית שימו לב הבעיה האמיתית היא בקונטיינרים שאי אפשר להתחבר לגוי שלו זאת אומרת שאם בתוך קונטיינר בתוך מכונה וירטואלית תוריצו notepad אתם לא תראו אותו

  16. 05:38

    במסך זה הבדל הכי גדול בין הקונטיינר למכונה וירטואלית אמיתית שאי אפשר להריץ גרפיקה מה יש לנו פה עוד פקודת inspect אנחנו חוקרים את האובייקט של הקונטיינר מאיזה שכבות הוא עשוי ולאיזה רשת הוא מחובר מה יש לנו פה עוד מעניין לוגין אנחנו נכנסים לתוך האתר של דוקר או למאגר אחר מתחברים עם שם וסיסמה כדי לשלוף משם אימייג'ים של מכונות וירטואליות

  17. 06:12

    שאחרים עשו או שאנחנו עשינו אקזק אנחנו יכולים להריץ פקודה בתוך הקונטיינר שעובד שזה גם מאוד מאוד חשוב יש לי מכונה וירטואלית שעובדת קונטיינר שעובד ואני רוצה להריץ שם פקודות בפנים אחרת מה זה שווה שעובד אם אני לא יכול להיכנס פנים או לא יכול להריץ פקודות בפנים שימו לב, קומיט, פקודת קומיט מאוד חשובה,

  18. 06:41

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

  19. 07:01

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

  20. 07:42

    הסביבה המבודדת של הקונטיינר חיבור לארדיסק הפיזי כדי שאם קונטיינרים מחקק הקבצים נניח של אתר ווב לא יימחקו Swarm זה קלאסטר של קונטיינרים יש לנו קלאסטר של כמה מכונות וירטואליות, כמה Swarm זה קלאסטר של כמה מכונות פיזיות שמריצות את הקונטיינר.

  21. 08:10

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

  22. 08:24

    זה סרוויסים קטנים שעובדים במקביל. זה נקרא Swarm, קלאסטר. ונטוורק, כל הנושא של כרטיסי רשת, כמו במכונה וירטואלית שיש נטוורק, כרטיסי רשת, נאט וברידג' כל זה גם קיים פה.

  23. 08:40

    אימג'ס זה ניהול של האימג'ים שאנחנו תכף נראה אותם. בואו נתחיל לראות תכלס כי אני רואה שאנחנו פה נסחפים ועברנו ככה על פקודת דוקר כרגע עשיתי לכם דוקר אנטר או מינוס מינוס הלפ.

  24. 08:56

    אני רוצה להתחיל בקונטיינר וגם בתוך דוקר קונטיינר יש לנו כל מיני דוקר קונטיינר קומנדס. אתם יודעים מה? בואו ניכנס למאגר המרכזי הזה של hub.docker.com ונראה כמה אימייג'ים יש שם מוכנים.

  25. 09:25

    תסתכלו, יש כאן את כל החברות עשו, יש כאן נציגות מכל החברות. הם עשו מאגר מרכזי של מכונות וירטואליות של קונטיינרים על ידי היצרן עצמו. זה נקרא Official Images.

  26. 09:49

    זאת אומרת, לא רק האנשים באופן פרטי עושים את זה, גם אני יכול לעשות מכונה וירטואלית ולדחוף לפה, לעשות קונטיינר ולדחוף לפה, ואם להגיד את זה בשפה המקצועית, לעשות אימג' משלי ולדחוף אותו לפה, יש אימג'ים רשמיים של היצרנים, לדוגמה MongoDB שמייצרים דאטאבייס, Nginx שזה למעשה אתר וב כזה, Node.js, אובונטו, אתם רואים?

  27. 10:19

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

  28. 10:57

    ויש לנו פה סינון, ויש לנו לדוגמה סינון לפי Windows, סינון לפי Linux, וכתוב פה Official Image, שזה אימג' רשמי. כמובן שיש לא רשמי, מה זה רשמי? זה אומר שהיצרן עצמו עשה אותם.

  29. 11:12

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

  30. 11:35

    ואיך להריץ אותו, אתם רואים דוקר ראן ואיך להריץ אותו, אוקיי? אז בואו נתחיל לאט לאט, נמשוך את האימג' הזה ביחד ונתחיל להריץ אותו.

  31. 11:53

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

  32. 12:21

    פורט 81 ואני מעביר אותך פנימה לתוך הקונטיינר בפורט 80 זה כמו לפתוח פורטים האמת שאני חושב שיש לי גם פורט 80 פה פנוי אז אני יכול לעשות אפילו 80 תפתח ל-80 אם ה-80 אצלי יהיה תפוס אז אני יכול להגיד לו 81 תכניס פנימה ל-80 ואומר לו איזה אימג' אני רוצה אני רוצה אימג' מתוך המאגר של מייקרוסופט

  33. 12:52

    והשם של האימג' IIS ואני צריך לשים נקודתיים ותגית. יש תגית מוסכמת שנקראת ליטסט. ליטסט זה אומר הגרסה האחרונה, זה תגית. ורז'ן 1 וורז'ן 2 אפשר לעשות תגיות שעוזרות לזהות את האימג' במאגר.

  34. 13:12

    זאת אומרת, יש מאגר של מייקרוסופט, בפנים יש אימג' IIS ויכולים להיות שמה כמה גרסאות איזה תגית אני רוצה. אם אני לא אכתוב כלום, ואני אעשה enter, מה הוא עשה?

  35. 13:31

    קודם כל שימו לב מה הוא אמר לי Unable to find the image, לא מסוגל למצוא את האימג' מייקרוסופט IS.2 Latest שימו לב הוא הוסיף לי לבד את התגית Latest זה מה שדוקר החליטו שאם אין תגית זה תגיד עם המילה Latest שזה סתם מילה, גרסה אחרונה אז הוא הוסיף לי את התגית הזאת והוא כותב שהוא לא מצליח למצוא את האימג' שביקשתי

  36. 13:57

    לוקאלי מה זה אומר לוקאלי? אין לי את האימג' הזה, את הקבצים האלו בארדיסק הלוקאלי.

  37. 14:03

    מה הוא הולך לעשות? הוא הולך למשוך אותם מאתר ה-Web, מאגר. למעשה הרצתי פקודה אחת שמריצה את הקונטיינר,

לקורס המלא: קורס Docker עם Swarm Cluster

ההרצאה הקודמת: התקנה של Docker

ההרצאה הבאה: Publish Image

הרצאות קשורות מקורסים אחרים

  • הרצה ראשונה של הסקריפט
  • container
  • תוכנית ראשונה באנדרואיד
  • אפליקציה ראשונה ב-Node.js

קורסים נוספים במסלול

  • קורס AWS - ניהול מכונה וירטואלית בענן
  • קורס Terraform - DevOps - Azure & AWS
  • קורס קוברנטיקס - Kubernetes
  • קורס DevOps - Ansible
  • קורס PowerShell
  • קורס Git ו-GitHub עם Visual Studio