
docker stack deploy -c מקבל את קובץ ההגדרות ושם לסטאק. הקלאסטר יוצר את הרשתות ואת השירותים בפקודה אחת, במקום להקים כל שירות בנפרד.deploy מכיל הגדרות של רפליקות ומגבלות מיקום. הוא נלקח בחשבון רק בקלאסטר, ו-Compose מקומי מתעלם ממנו.docker stack ls מציג את הסטאקים, docker stack services מציג את השירותים של סטאק מסוים, ו-docker stack ps מציג את המשימות והנודים שעליהם הן רצות.docker stack rm מוחק את כל השירותים, הרשתות והסודות של הסטאק בפקודה אחת.docker stack deploy -c wordpress-stack.yml wordpress, docker stack ls, docker stack services wordpress, docker stack ps wordpress, docker stack rm wordpress. בקובץ ה-YAML סעיף deploy חייב להיות מוזח מתחת לשירות הנכון, אחרת הפריסה נכשלת עם שגיאה בשורה.הטקסט המלא של הדקות הראשונות בהרצאה «Swarm - Stack» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, ברוכים הבאים להרצאה על Stack. מה זה Stack? זה משהו מאוד מאוד בסיסי וחשוב, כמו שהיה לנו Compose File בשביל לאסוף פקודות של Docker Run לקובץ אחד גדול, אתם זוכרים שעשינו את זה?
עשינו Compose File, ואני מזכיר לכם, עשינו Docker Compose File, ואספנו לתוכו את כל הפקודות שצריך בשביל לעשות Docker Run, ובמקום לעשות כל פעם Docker Run אחד-אחד, אספנו את הכל ל-compose file והיינו מריצים אותו עם docker compose app.
אולי אני אזכיר לכם, אם אתם שכחתם, היה לנו פה docker compose, אני אראה לכם, וכתבנו version 3.3.3.services ועשינו db וwordpress וphp myadmin.
במקום לעשות docker run כל פעם, עשינו compose file. ואז היינו עושים docker compose app והכל היה עולה ביחד, כאילו מריץ במקומנו פקודות.
והיה לנו גם, כן, דוקר, היה לנו גם בגוגל דוקר קומפוז פייל. אז כמו שהיה לנו דוקר קומפוז פייל ב-run בודד, אותו קומפוז פייל בדיוק, אותו קובץ קומפוז, אחד לאחד עובד גם בטאק, בקלאסטר.
אגב, האינטרנט לא עובד בגלל ששרת 2019 כבוי, בגלל זה האינטרנט לא עובד לנו. טוב, אז דוקר קומפוז הזה שעבד לנו עם הגדרות של סרוויס אחד ועם כל המשתנים, סרוויס אחר ודיברנו אחד לאחד עובד גם בשביל הקלאסטר זאת אומרת אנחנו יכולים לבנות קובץ הגדרות כזה ולהריץ אותו זה נקרא דוקר סטאק מנג' דוקר סטאק ls לראות את הסטאק ps לראות את הטאסקים כן הרי יש סטאק מורכב בפנים מסרוויסים
וכל סרוויס מורכב מטאסקים טאסק זה שווה לקונטיינר כי טאסק יוצר קונטיינר וrm זה למחוק אז עוד פעם דוקר סטאק זה אוסף של סרוויסים ביחד כמו דוקר ראן בודד ככה דוקר סרוויס זה סרוויס בודד שרץ בקלאסטר לאסוף אותם ביחד זה נקרא דוקר סטאק ואנחנו יכולים לראות את הפירוט של הסרוויסים
אנחנו יכולים לראות פירוט של המשימות בתוך סרוויס מסוים שבתוך הסטאק ודיפלוי זה ליצור אחד חדש להפעיל אחד חדש אז בוא נעשה לדוגמה ויז'ואל סטודיו קוד ונעבור על כל מה שקורה פה אז יש לי פה wordpress.tac.phile שיצרתי, שימו לב שהוא ממש אותו דבר כמו הword.compose זה אותו Compose פייל כן אותו תקן אותו סטנדרט הם ירדו ביניהם אז אנחנו עכשיו בתקן 3.1 מה
זה אומר תקן 3.1 בוא נראה אם האינטרנט עלה לנו עכשיו השערת עלה הנה ניכנס כאן לדוקר פייל Compose פייל ורז'ן 3 ואתם אתם יכולים לראות שיש פה פורמט, כן?
Compose File, פורמט, אז גרסה 3.7, לדוגמה, מתאימה ל-18.06 וכל מה שלמעלה. לדוגמה, הגרסה 3.1 מתאימה לכל מה ש-1.13. דרך אגב, למה זה 1.13 ופתאום 17.04? הם החליטו בשנת 2017 בחודש הרביעי להתחיל מספור לא ב-1, 2, 3, אלא שנה, חודש, שנה, חודש.
למעשה, הגרסה האחרונה שיצאה, יצאה ב-2018 בחודש שישי, אוקיי? זה שנה וזה חודש, הם שינו את המספור. זה היה בהתחלה 1, 2, 3, ואחרי זה הם שינו את המספור, אתם רואים?
וזהו. אז 18.06, מתי הם שינו את זה? הנה, אני רואה 17.04, ב-17.04 הם שינו את זה, נכון? משהו כזה. טוב, אז יש היום גרסה 3.7 שכל מה שבא ייתמך רק על דוקר אנג'ן מ-1806.
זה כל מיני דקויות שהם הוסיפו ל-compose file, לאיזה פקודות מותר לעשות, ויש לנו פה מלא פקודות ואנחנו יכולים לראות פה את כל הפקודות. אתם רואים?
Compose version 3, 2, 1 ואת כל הפקודות שיש. הנה, כאן, בצד. ראינו את זה, עברנו על זה, נכון? אני לא הולך לעבור איתכם על זה עוד פעם.
בגדול איך זה עובד, version 3.1 זה מחייב אנג'ין מרמה מסוימת, סרוויסים, איזה סרוויסים יהיו לי? יהיה לי דאטאבייס סרוויס, יהיה לי וורדפרס סרוויס, זה כמו פקודה docker service create.
ושימו לב, אני אומר מהסרוויס של וורדפרס יהיה לי בדיפלוי, זה משהו שלא היה לפני כן, שתי רפליקות.
הדיפלוי זה מתייחס אך ורק כמובן לקלאסטר, לסוורם. אוקיי, אז אנחנו רואים פה סרוויס, של סרוויץ יהיה ממנו שני קונטיינרים ווליומס mnt wordpress בפנים כן זה המאונט של שימו לב המאונט פה הוא שונה מהפקודה docker service create והכל אותו דבר סופר סיקרט פספורט של רוד וורדפרס דאטאבייס שזה בדיוק זה just a user למעשה אנחנו
יוצרים פה mysql ופה יוצרים את הוורדפרס נכון אין פה שום דבר מיוחד בכוונה לא הוספתי שום אופציות מיוחדות כל מה שלא קראתי, הורדתי.
יופי, זה נראה מאוד מאוד פשוט. בואו אפילו נמחק פה כמה מרווחים שיהיו לכם. אה, משהו יפה. שימו לב, כאן, ב-Deploy, אני יכול לעשות placement constraints רק על המנאג'ר, אם אני רוצה אותם.
אוקיי? אני יכול לעשות רק לייבלים מסוימים, נכון? ב-placement. בואו, אנחנו נראה לכם את זה, כי זה מאוד חשוב.
הנה, ב-Deploy יש placement. אז אני יכול לעשות constraints, not role שווה מנאג'ר. יש איזשהו לייבל, לדוגמה, אובנטו 14. יש? כל זה קונסטרנטים, מגבלות ו-deploy, זה הפקודה שבעצם, deploy, כל מה שקשור זה אך ורק לדוקר סטאק דיפלוי, on swarm.
זה לא מתייחס and is ignored, הוא מתעלם כשאתה משתמש ב-compose up ו-compose run. זאת אומרת, ה-section של ה-deploy בתוך הקובץ Compose, ו-Compose הוא משותף גם לבודד וגם לקלאסטר.
אז החלק של ה-Deploy מתעלמים ממנו כשזה Docker Compose בודד. וכשלמדנו Docker Compose בודד אמרתי לכם שהוא נורא חשוב כי משתמשים בו בקלאסטר. והנה אנחנו נראה את זה עכשיו.
טוב, אז הבנו על ה-Deploy, חוץ מזה הכל אותו דבר, אימג' איזה אימג' משתמשים, משתנה סביבה, שבעצם מגדירים את הזה, את היוזר ואת הסיסמאות.
פאונט לסטורייג' ודיפלוי לדוגמה רק למנג'ר ווורד פרס סרוויס אני אומר בדיפלוי רק לרפליקה 2 כמובן שאני יכול לעשות גם וגם זאת אומרת אני יכול לעשות פה ככה לעשות פה אנטר מה שכן חשוב זה לשמור על שזה יהיה באותו קו זה חשוב אז אני יכול לעשות גם ככה אוקיי אין בעיה לעשות דיפלוי אה לא לשכוח בדיפלוי פלייסמנט פה לעשות פלייסמנט פלייסמנט הופה זה חשוב בואו
נעתיק את כל זה כמו שזה זאת אומרת בדיפלוי יש לי פלייסמנט ובפלייסמנט יש לי קונסטריינט וזה לא קשור לרפליקה, שימו לב רפליקה זה תחת פלייסמנט מאוד מאוד חשוב לשמור שזה יהיה מתחת לזה אם תעשו ככה זה לא יעבוד לכם אם תעשו ככה זה לא יעבוד אתם מבינים בואו נראה אתם יודעים מה בואו נראה את הטעות עכשיו אני אעשה דוקר דיפלוי דוקר סטאק ואז
אני עושה דיפלוי תפרוס לי מינוס מינוס help אני מציין לו פה במינוס c compose file אני יכול גם לעשות path to compose file אני יכול לעשות גם bundle file, bundle file זה כמו compose file רק בפורמט קצת שונה ופה אני יכול לציין לו האם זה swarm או קוברנטיס וכל מיני דברים אחרים שפחות חשובים לדוגמה resolve image לבדוק האם זה מתאים לדוגמה ללינוקס או לווינדוס בואו
נעזוב את זה בואו נעשה יש גם אליאסים, דיפלוי ואפ, דוקר סטאק דיפלוי ונרשום שם של סטאק ונציין את הקובץ.
אז הפקודה תראה דבר כזה, יש לי פה קובץ wordpress stack, זה מה שראינו איתכם ביחד, בואו נעשה לזה קופי, נעשה cut לקובץ הזה, נראה שזה אותו קובץ, זה הקובץ שלנו, שימו לב פה ברפליקה יש בעיה ואנחנו כותבים דבר כזה, דוקר סטאק דיפלוי מינוסים מציינים את השם של הקובץ, הקובץ הזה ואיזשהו שם ממציאים wordpress
stack stack זה קבוצה של סרוויסים זה איכות של סרוויסים אני עושה enter והוא לא מוכן אתם רואים line 34 מה זה line 34 הנה זה זה אתם רואים הוא לא מבין מה קורה פה בline 34 בגלל זה אנחנו גם אם נעשה ככה זה לא יעזור לו אם נעשה ככה זה לא יעזור לו בואו תראו לא יעזור הוא לא יבין הוא הוא לא מוכן לקבל את זה, נכון?
נעשה את זה ככה, נשים את זה מתחת לזה וזה מאוד חשוב. עובד. עכשיו, מה הוא עושה? הוא יוצר לנו נטוורק, כמו בקומפוז הרגיל, היה יוצר נטוורק, ואז יוצר לנו שני סרוויסים. במקום שניצור סרוויסים ידניים, זוכרים את הפקודות הארוכות שהיינו עושים?
אנחנו כותבים רק פקודה אחת, תפרוס לי את הסטאק. מה קרה עכשיו? docker service ls פרס לי את שני הסרוויסים,