PracticU

הסבר על Docker Compose - חלק 1

בלי כתוביותעם כתוביות
PracticU › קורס Docker - עם Swarm Cluster › הסבר על Docker Compose - חלק 1
מילון מושגים:
Docker - פלטפורמה להרצת אפליקציות בתוך קונטיינרים מבודדים וקלים, כדי שירוצו באופן אחיד בכל סביבה.
קונטיינר - חבילה קלה ומבודדת שאורזת אפליקציה עם כל תלויותיה, ורצה באופן אחיד בכל סביבה, למשל ב-Docker.
הרשאה - קביעה אילו פעולות ומשאבים מותרים למשתמש או לתהליך לאחר שזהותו אומתה. שולטת במי רשאי לעשות מה.
טרמינל - חלון או תוכנה שמספקים ממשק שורת פקודה להקלדת פקודות למערכת ההפעלה.
Dockerfile - קובץ טקסט עם הוראות לבניית Docker Image, המגדיר את הבסיס, הקבצים והפקודות שיירוצו.
Docker Image - תבנית לקריאה בלבד שמכילה אפליקציה ותלויותיה, וממנה מריצים קונטיינרים ב-Docker.
משתנה סביבה - ערך בעל שם שמוגדר במערכת ההפעלה ומשמש תוכנות להגדרות, כמו נתיבים או מפתחות תצורה.
תחביר - אוסף הכללים של שפת תכנות הקובעים כיצד לכתוב קוד תקין. הפרתם גורמת לשגיאת תחביר.

הסבר על Docker Compose - חלק 1
בהרצאה הזאת לומדים את Docker Compose, כלי שמנהל כמה קונטיינרים כקבוצה אחת בעזרת קובץ YAML. במקום להריץ כל קונטיינר בנפרד, מגדירים את כולם בקובץ אחד ומרימים או מורידים את כולם בפקודה אחת.
ההכנה
1. הרשאות: כדי לא להריץ כל פקודה כמנהל, ההרצאה מציגה את ההגדרה שמאפשרת להריץ פקודות Docker כמשתמש רגיל בלינוקס, ואחריה מפעילים מחדש את הטרמינל.
2. עורך קוד: ההרצאה ממליצה על Visual Studio Code עם התוסף של Docker. התוסף מזהה קובצי Dockerfile ו-YAML, ומציע השלמות לפקודות.
כתיבת הקובץ
1. שירותים: בקובץ docker-compose.yaml מגדירים שירותים. כל שירות הוא קונטיינר או קבוצת קונטיינרים מאותו אימג'. ההרצאה מגדירה שירות לרג'יסטרי על בסיס האימג' של registry.
2. פורטים ומשתני סביבה: ערכים מוגדרים ברשימה בפורמט YAML. המקף מציין פריט ברשימה. המשתנים מוגדרים לפי שמם, כמו הכתובת של השירות השני.
3. ווליומים: מציינים את החיבור בין תיקייה במחשב לתיקייה בתוך הקונטיינר.
4. שמות שירותים: בתוך אותה רשת שהקומפוז יוצר, שירות יכול לפנות לשירות אחר לפי שמו, כי יש DNS פנימי.
הפעלה ופקודות
1. הרמה: docker compose up -d מרים את כל השירותים, ברשת מבודדת ייעודית, במצב מנותק.
2. הצגה: docker compose ps מציג רק את הקונטיינרים של הקובץ הזה, לעומת docker ps שמציג הכל.
3. עצירה ומחיקה: docker compose stop עוצר, ו-docker compose down עוצר ומוחק את הקונטיינרים.
4. קובץ אחר: אם הקובץ נמצא בתיקייה אחרת או שמו שונה, מציינים אותו בעזרת האפשרות -f.
שימו לב
קובץ YAML רגיש לרווחים ולהזחה, ולכן כדאי לכתוב אותו בעורך שמתקן את התחביר. ההרצאה מציינת ש-Docker Compose מתאים לתחביר שבו משתמשים גם בקלאסטרים, ולכן כדאי להכיר אותו היטב.
השיעור הבא בקורס: הסבר על Docker Compose - חלק 2

פרקי ההרצאה: הסבר על Docker Compose - חלק 1

  1. 00:00

    מבוא: Docker Compose לניהול כמה קונטיינרים

  2. 02:03

    ביטול הצורך בהרשאות אדמיניסטרטור ל-Docker

  3. 04:56

    התקנת Visual Studio Code לעריכת קבצי Docker

  4. 06:54

    הוספת תוסף Docker והשלמה אוטומטית

  5. 11:27

    כתיבת קובץ docker-compose.yaml

  6. 12:46

    הגדרת שירות Registry בקובץ Compose

  7. 13:47

    שמות קונטיינרים ופורטים בקובץ Compose

תמלול ההרצאה: הסבר על Docker Compose - חלק 1

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

  1. 00:02

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

  2. 00:38

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

  3. 00:39

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

  4. 02:03

    אני רוצה להיפטר מהסיפור הזה של הסודו כל הזמן לרשום סודו זה לא מתאים לי זה דבר ראשון דבר שני אני רוצה להיפטר מהקונטיינרים האלו אז ככה הסודו מינוס s יחסוך לי כתיבה כל פעם של פקודה לפני סודו כאילו עברתי לrun as אדמיניסטרטור הרצתי את הCMD תחת הרשאות אדמיניסטרטור עכשיו אני יכול לעשות docker rm של כל מה ש docker ps ייתן לי מינוס a ומינוס q

  5. 02:34

    מינוס a זה גם מה שנעצר ומינוס q זה רק ה-id שלהם ואז כל ה-id יעברו לדוקר rm והוא ימחק לי הכל. דוקר ps יפה ודוקר ps מינוס a. נפטרנו מכל זה.

  6. 02:49

    עכשיו אני רוצה להיפטר מהצורך לרשום סודו כל פעם. שימו לב איך אני עושה את זה עוד פעם right click open terminal אם אני אעשה עכשיו דוקר ורז'ן הוא לא נותן לי.

  7. 03:02

    למה? כי הוא רוצה שנכתוב סודו דוקר ורז'ן ואז נכניס לו סיסמה. כל הסיפור הזה לא מתאים לי בכלל ואני רוצה להריץ פקודות דוקר ללא הרשאת אדמיניסטרטור בשביל זה נפתח בראוזר ונעשה פה את הכתבה הזאת פוסט אינסטול סטאפס צעדים אחרי התקנה על לינוקס והרעיון מנג' דוקר לנהל דוקר as non-root user שאני לא רוט נכון זה הרעיון אז יש פה

  8. 03:45

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

  9. 04:25

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

  10. 05:14

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

  11. 05:31

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

  12. 05:41

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

  13. 05:57

    קופטור אינסטול אוקיי תתקין לי את התוכנה הנה הוא מתחיל את ההתקנה הוא עושה לי אינסטול אני עושה לו אינסטול שואל אותי את הסיסמה של האדמיניסטרטור והנה הוא מתחיל לי את ההתקנה הנה הוא סיים את ההתקנה כותב לי פה רימוב אני לא רוצה כמובן רימוב אני סוגר את כל זה עושה סטארט עושה פה all תוכנות כל התוכנות יורד פה למטה ויש לי פה visual studio code

  14. 06:39

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

  15. 07:04

    בואו נעשה פה open folder, תפתח לנו תיקיית דסקטופ, אוקיי, תפתח לנו אותה. בבקשה, הוא פתח לנו את התיקייה, נסגור את זה, ונעשה נניח פולדר חדש, בדסקטופ נעשה פולדר חדש, ונקרא לו my registry, מהי רג'יסטרי אני רוצה,

  16. 07:39

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

  17. 08:10

    ושימו לב מה הוא עושה, ברגע שעשיתי לו כובד שקשור לדוקר פייל, הוא אומר לי תראה, ו-Docker extension is recommended. האם אתה רוצה את התוסף של הדוקר?

  18. 08:21

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

  19. 08:42

    זאת אומרת, הוא יודע לקרוא מידע מתוך הדוקר ולהראות לי את זה ולעבוד איתו בצורה מאוד יפה. לדוגמה אני יכול לעשות פה Run Interactive והוא כותב במקומי פקודה ומריץ לי שימו לב אני בתוך הקונטיינר למטה פה זה כאילו הטרמינל זה ה-CMD שלו ויש לי פה למעלה קונטיינר ואני יכול לעשות View Log זה תת של להתחבר אליו לבדוק אותו לעצור אותו

  20. 09:08

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

  21. 09:29

    זאת אומרת, אני עושה ctrl shift, ctrl רווח, והוא יודע לתת לי פקודות שעוזרות לי, אוקיי? זאת אומרת, הוא מבין את הפקודות שאפשר לשים בפנים בתוך קובץ docker, וזה הדבר הגדול.

  22. 09:46

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

  23. 10:10

    דבר אחרון שאני רוצה להראות לכם, איך להגדיל את האותיות אני לוחץ Ctrl-Shift-P, עובר למצב כזה של חיפוש של User Settings, פותח את ההגדרות של User Settings ואני רוצה פה Editor editor.fontsize הנה editor.fontsize ואני רוצה את זה 18 אפילו 22 שיהיה לי ככה גדול בוא נראה שזה באמת ישתפר נניח נרשום פה משהו

  24. 10:54

    הנה זה גדול ויפה יופי אז אני רואה שאנחנו פה מוכנים כן הגודל בסדר טוב אני רואה שאנחנו מוכנים לקובץ docker compose יש לנו visual studio יש לנו אנחנו לא דורשים הרשאות אדמיניסטרטור אפשר להתחיל מה זה זה, לא קשור, בואו נתחיל לדוגמה ממה שעשינו בשיעור קודם, עשינו בשיעור קודם את

  25. 11:28

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

  26. 11:55

    למעשה אותן פקודות רק בצורה הבאה אנחנו למעלה כותבים version 3 שזה הגרסה 3 של דוקר קומפוז שיש לנו כרגע וכל הפקודות שאני הולך להראות לכם נמצאות בדוקר קומפוז פייל בתוך הדוקר פייל version 3 רפרנס אתם רואים קומפוז פייל רפרנס יש לנו פה את כל

  27. 12:28

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

  28. 12:51

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

  29. 13:24

    אני עושה פה open terminal, אתם רואים יש לו compose up וזה, קונטרול וטילדה כזה שיש בצד ליד אחד, אני עושה את זה.

  30. 13:35

    אז החלק הזה של ראג', החלק הזה הוא חופף לפקודה של מי שזוכר, עשינו הרי את הפקודה הזאת. אני לא אריץ אותה, אני רק מראה לכם במקום הפקודה docker run detach publish 5000 הנה פה פורטים 5000 בחוץ ובפנים name rage name דרך אגב לא עשינו בוא נעשה name container name שימו לב עשיתי control רווח והוא משלים לי מאיפה הוא יודע

  31. 14:11

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

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

ההרצאה הקודמת: התקנת Registry פרטי לאחסון Image

ההרצאה הבאה: הסבר על Docker Compose - חלק 2

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

  • docker
  • קונטיינר בענן - Cloud Run - הסבר על Docker image

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

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