
docker, אחריה אופציות שאינן חובה, ואז הפקודה עצמה, לדוגמה docker container ls.pull מוריד אימג' ממאגר מרכזי, ו-run מפעיל קונטיינר חדש מתוך אימג'.docker ps מציג את הקונטיינרים שרצים, ו-docker ps -a מציג גם את אלה שנעצרו. docker ps הוא קיצור דרך (alias) של docker container ls.docker container exec -it מריץ פקודה בתוך קונטיינר פעיל, בדוגמה cmd.docker container run עם מיפוי פורט מהמחשב לקונטיינר, ושם האימג' עם תגית latest.docker container stop ו-start. הקבצים שנשמרו בקונטיינר נשארים אחרי עצירה.docker container rm מוחק את הקונטיינר ואת השינויים שנעשו בו. docker rmi מוחק את האימג'.exec -it עם cmd פותח שורת פקודה בתוך הקונטיינר. שינוי בקובץ של האתר משתקף רק בקונטיינר הזה, ולא בקונטיינר אחר שהורץ מאותו אימג'.exit.הטקסט המלא של הדקות הראשונות בהרצאה «הרצה ראשונה של Container» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
טוב חברים, בהרצאה הזאת אנחנו נתקין סוף סוף קונטיינר, נפעיל אותו ואנחנו נכנסים ל-PowerShell ובודקים שדוקר שלנו עובד והקונטיינרים עובדים. מה שאנחנו רואים פה שיש לנו גם את החלק של הקליינט שהצליח לעבוד וגם את החלק של השרת שהצליח לעבוד כאשר אני מזכיר לכם שהשרת זה סרוויס שרץ ברקע והסרוויס הזה נותן פקודות לתוך מערכת הפעלה,
בתוך מערכת הפעלה זה נקרא קונטיינר. שמבודד את התהליך. דוקר זה מנוע שמנהל את הקונטיינרים. דוקר זה מנוע ניהול. לפני שדרך אגב היה מנוע ניהול של דוקר, מייקרוסופט עשו מנוע ניהול משלהם, ובסוף הם החליטו שמנוע הניהול של חברת דוקר יותר טוב, וחתמו איתם הסכם, ודוקר מאושרים מזה נראה
לי יותר ממייקרוסופט. טוב, בואו נתחיל, בואו נפעיל משהו. לפני שמתחילים אני רק רוצה להראות לכם שבשרת הזה, ברולים שלו, בתפקידים שיש לו, אין לו IS. שימו לב, ה-IS פה בלי V, אין, הוא לא מותקן.
זאת אומרת, שרת ווב שאני הולך להתקין עכשיו ירוץ בתוך הקונטיינר. כשאני מזכיר לכם קונטיינר זה כמו מכונה וירטואלית בלי Windows משלה.
היא מנצלת את ה-Windows של המחשב הפיזי ואז זה חוסך להתקנה של Windows בתוך Windows כאשר שניהם אותו דבר. אז אין לי פה את האתר ווב ואני צריך להוריד רק את הקבצים שנדרשים ל-IS.
אז קודם כל בואו נתחיל לחקור פקודת דוקר. בתוך פקודת דוקר יש לנו, בואו נראה מה יש לנו. יש לנו פה מבנה הבא, דוקר, פקודת דוקר, אחרי זה כל מיני אופצ'אנס שהם לא חובה כי הם בסוגריים מרובעים, ואחרי זה קומנד, פקודה, שזה חלק חובה.
אופצ'אנס, יש לנו פה כל מיני אופציות שכרגע לא נעבור עליהן, ואחרי שיש לנו אופשיאנס, יש לנו פה קומנדס. אתם רואים קומנדס, יש מנג'מנט קומנדס ויש קומנדס רגילים, פקודות רגילות.
הלאה. מה זה הפקודות? לדוגמה, פקודה פול, למשוך אימג' של מכונה וירטואלית, כמו טמפלט של מכונה וירטואלית, מרפוזיטורים ממרכז, ממאגר המרכזי.
שוב, פול זה למשוך אימג' של מכונה וירטואלית, של קונטיינר, מתוך מאגר מרכזי שיש באינטרנט או שאני יכול להקים אותו בתוך החברה משל עצמי.
פוש זה לדחוף לשם את האימג' שבניתי, קונטיינר ששיניתי ובניתי. עכשיו, אנחנו נעשה עכשיו פול ונמשוך אימג' מוכן, תכף אני אראה לכם.
ראן זה להריץ קונטיינר חדש מתוך האימג', זאת אומרת להפעיל מכונה וירטואלית מתוך אימג' מסוים. אימג' זה בעצם הקבצים שנדרשים לאותה תוכנה יחד עם כל ה-DLLים שנדרשים וקובץ שמתאר את כל השכבות שצריך, את כל הקבצים, הם מגיעים בשכבות כדי שיהיה אפשר לנצל אותם בין כמה קונטיינרים במקביל.
תכף נדבר על זה ונראה את זה, את כל השכבות האלו. ככה למעשה אותו Windows אפשר לנצל כמה פעמים בכל מיני קונטיינרים שונים. למעשה קונטיינר זה אוסף של קבצים.
סטארט זה להפעיל קונטיינר שעצרנו אותו כמו שעשינו סטופ וסטארט למכונה וירטואלית. אומרים סטארט וסטופ לכל מכונה וירטואלית לכל קונטיינר יש תגית שזה מאוד מאוד חשוב ורז'ן דרך אגב ראינו דוקר ורז'ן rm זה למחוק קונטיינר rmi זה למחוק לא רק את הקונטיינר למחוק את האימג' שממנו עשו את הקונטיינר למחוק את הקבצים שמהם מייצרים את הקונטיינרים אנחנו דרך אגב
יכולים לעשות קונטיינר משלנו ואחרי זה להפוך אותו לאימג' ולחלק לאחרים ההבדל בין אימג' לקונטיינר שאימג' הוא בריד אונלי ולקריאה בלבד וממנו מייצרים הרבה קונטיינרים בקונטיינר אפשר לכתוב וזה נשמר בצד כמו שכבות כאלו של עוגה טוב אז זה ככה על רגל אחת אתם רואים ps זה רשימה של כל הקונטיינרים שיש לי כרגע כל המכונות
הווירטואליות שיש לי כרגע אם אתם שואלים אותי האם יש ממשק גרפי שמנהל את כל זה יש אבל אנחנו מתחילים מלמטה אחרי זה גם אני אראה לכם ממשקים גרפיים שהם בעצם מנהלים את הקונטיינרים ברמה גרפית שימו לב הבעיה האמיתית היא בקונטיינרים שאי אפשר להתחבר לגוי שלו זאת אומרת שאם בתוך קונטיינר בתוך מכונה וירטואלית תוריצו notepad אתם לא תראו אותו
במסך זה הבדל הכי גדול בין הקונטיינר למכונה וירטואלית אמיתית שאי אפשר להריץ גרפיקה מה יש לנו פה עוד פקודת inspect אנחנו חוקרים את האובייקט של הקונטיינר מאיזה שכבות הוא עשוי ולאיזה רשת הוא מחובר מה יש לנו פה עוד מעניין לוגין אנחנו נכנסים לתוך האתר של דוקר או למאגר אחר מתחברים עם שם וסיסמה כדי לשלוף משם אימייג'ים של מכונות וירטואליות
שאחרים עשו או שאנחנו עשינו אקזק אנחנו יכולים להריץ פקודה בתוך הקונטיינר שעובד שזה גם מאוד מאוד חשוב יש לי מכונה וירטואלית שעובדת קונטיינר שעובד ואני רוצה להריץ שם פקודות בפנים אחרת מה זה שווה שעובד אם אני לא יכול להיכנס פנים או לא יכול להריץ פקודות בפנים שימו לב, קומיט, פקודת קומיט מאוד חשובה,
מה היא עושה? היא יוצרת אימג' חדש מתוך קונטיינר שעובד. שוב, אני יכול להפעיל מכונה וירטואלית, להפעיל קונטיינר, לעשות שם שינויים, ואז להפוך אותו לאימג' ולהפיץ אותו לאחרים, וכל מי שיקבל אותו יקבל אותו בריד אונלי, ואם הוא עושה שינויים זה כבר יהיה בצד, מה שנקרא.
אימג' הוא תמיד בריד אונלי, זה כמו קבצי מקור שמהם עושים מכונה וירטואלית, כמו קובץ איזו כזה. ששיניתי לאימץ' חדש ויש לנו פה עוד עוד המון המון פקודות לדוגמה היסטורי שמראה את כל הפקודות שעשיתי על הקונטיינר איך שיניתי אותו איזה פקודות הרצתי אותו ואנחנו נעבור גם על הווליומים האלו ווליומים זה חיבור לעולם הפיזי מתוך
הסביבה המבודדת של הקונטיינר חיבור לארדיסק הפיזי כדי שאם קונטיינרים מחקק הקבצים נניח של אתר ווב לא יימחקו Swarm זה קלאסטר של קונטיינרים יש לנו קלאסטר של כמה מכונות וירטואליות, כמה Swarm זה קלאסטר של כמה מכונות פיזיות שמריצות את הקונטיינר.
אני יכול להגיד לו שאנחנו צריכים שלושה קונטיינרים כאלו, לדוגמה שלושה אתרי ווב, אנחנו צריכים שכולם זהים, ואם מישהו יפול אז תפעיל את זה במכונה אחרת.
זה סרוויסים קטנים שעובדים במקביל. זה נקרא Swarm, קלאסטר. ונטוורק, כל הנושא של כרטיסי רשת, כמו במכונה וירטואלית שיש נטוורק, כרטיסי רשת, נאט וברידג' כל זה גם קיים פה.
אימג'ס זה ניהול של האימג'ים שאנחנו תכף נראה אותם. בואו נתחיל לראות תכלס כי אני רואה שאנחנו פה נסחפים ועברנו ככה על פקודת דוקר כרגע עשיתי לכם דוקר אנטר או מינוס מינוס הלפ.
אני רוצה להתחיל בקונטיינר וגם בתוך דוקר קונטיינר יש לנו כל מיני דוקר קונטיינר קומנדס. אתם יודעים מה? בואו ניכנס למאגר המרכזי הזה של hub.docker.com ונראה כמה אימייג'ים יש שם מוכנים.
תסתכלו, יש כאן את כל החברות עשו, יש כאן נציגות מכל החברות. הם עשו מאגר מרכזי של מכונות וירטואליות של קונטיינרים על ידי היצרן עצמו. זה נקרא Official Images.
זאת אומרת, לא רק האנשים באופן פרטי עושים את זה, גם אני יכול לעשות מכונה וירטואלית ולדחוף לפה, לעשות קונטיינר ולדחוף לפה, ואם להגיד את זה בשפה המקצועית, לעשות אימג' משלי ולדחוף אותו לפה, יש אימג'ים רשמיים של היצרנים, לדוגמה MongoDB שמייצרים דאטאבייס, Nginx שזה למעשה אתר וב כזה, Node.js, אובונטו, אתם רואים?
ולא רק לינוקס, גם מייקרוסופט. יש פה פשוט מכונות וירטואליות מוכנות של כל היצרנים וגם חברת דוקר עושה בדיקה ונותנת להם פלומבה שהכל תקין פה וזה מצוין ובוא נחפש משהו לדוגמה אנחנו נחפש איי אס בוא נראה את הרשימה קודם כל של כל מיני רשמיים אנחנו יכולים לראות פה סינון אופי של אימג'ס פאבלישט ביי דוקר וריפייד שהם גם נבדקו
ויש לנו פה סינון, ויש לנו לדוגמה סינון לפי Windows, סינון לפי Linux, וכתוב פה Official Image, שזה אימג' רשמי. כמובן שיש לא רשמי, מה זה רשמי? זה אומר שהיצרן עצמו עשה אותם.
בואו נחפש לדוגמה IIS. כן, אני רוצה שרת אינטרנט של IIS, אז יש לנו פה לדוגמה Microsoft IIS, אנחנו יכולים לראות שמיקרוסופט עצמם פרסמו אותם, ואנחנו יכולים להריץ כל מיני פה פקודות, ויש פה הסבר איך הם בנו אותו.
ואיך להריץ אותו, אתם רואים דוקר ראן ואיך להריץ אותו, אוקיי? אז בואו נתחיל לאט לאט, נמשוך את האימג' הזה ביחד ונתחיל להריץ אותו.
אז אנחנו כותבים דוקר קונטיינר ראן. עכשיו שימו לב, כשהוא יעשה ראן, הוא יראה שאין לו את זה מקומית וימשוך את זה מאתר האינטרנט. עכשיו, בגלל שבפנים ירוץ אתר אינטרנט, אני צריך לפתוח לו פורט, כי אני כאילו הראוטר שלו, הוא נמצא בנת אז אני אומר לו מינוס פורט תעשה בעולם החיצון זה יהיה 81 על המכונה שלי זה
פורט 81 ואני מעביר אותך פנימה לתוך הקונטיינר בפורט 80 זה כמו לפתוח פורטים האמת שאני חושב שיש לי גם פורט 80 פה פנוי אז אני יכול לעשות אפילו 80 תפתח ל-80 אם ה-80 אצלי יהיה תפוס אז אני יכול להגיד לו 81 תכניס פנימה ל-80 ואומר לו איזה אימג' אני רוצה אני רוצה אימג' מתוך המאגר של מייקרוסופט
והשם של האימג' IIS ואני צריך לשים נקודתיים ותגית. יש תגית מוסכמת שנקראת ליטסט. ליטסט זה אומר הגרסה האחרונה, זה תגית. ורז'ן 1 וורז'ן 2 אפשר לעשות תגיות שעוזרות לזהות את האימג' במאגר.
זאת אומרת, יש מאגר של מייקרוסופט, בפנים יש אימג' IIS ויכולים להיות שמה כמה גרסאות איזה תגית אני רוצה. אם אני לא אכתוב כלום, ואני אעשה enter, מה הוא עשה?
קודם כל שימו לב מה הוא אמר לי Unable to find the image, לא מסוגל למצוא את האימג' מייקרוסופט IS.2 Latest שימו לב הוא הוסיף לי לבד את התגית Latest זה מה שדוקר החליטו שאם אין תגית זה תגיד עם המילה Latest שזה סתם מילה, גרסה אחרונה אז הוא הוסיף לי את התגית הזאת והוא כותב שהוא לא מצליח למצוא את האימג' שביקשתי
לוקאלי מה זה אומר לוקאלי? אין לי את האימג' הזה, את הקבצים האלו בארדיסק הלוקאלי.
מה הוא הולך לעשות? הוא הולך למשוך אותם מאתר ה-Web, מאגר. למעשה הרצתי פקודה אחת שמריצה את הקונטיינר,