Docker – חלק חמישי

בפרק הקודם הדגמתי הרצת שתי פקודות במיכל (באמצעות הפקודה docker run): האחת איפשרה גישה אינטרקטיבית לעבודה עם המיכל ובשניה הרצנו Daemon שסיפק שירות.

כרגע אתמקד בעבודה עם docker client. עבודה עם docker client מאוד פשוטה (באמצעות דגלים וארגומנטים ניתן לשלוט בהוראות ל- Docker Client):

הרצת הפקודה docker version תספק לנו אינפורמציה נוספת על גרסת docker בצד השרת ובצד הלקוח (בצד אינפורמציה רבה נוספת).

כדי לקבל עזרה על פקודה מסויימת (נניח attach) נוסיף את הדגל

הערה: כדי לצפות בכל באפשרויות שהפקודה docker תומכת יש להריץ את הפקודה docker בלבד.
הרצת אפליקציית רשת באמצעות docker:

  • הדגל d- מוכר: האפליקציה במיכל תורץ ברקע ותספק את השירות
  • הדגל p- מציין שיש למפות כל פורט נדרש במיכל ולשייך אותו למיכל הנוכחי
  • מאחר שהמיכל 'training/webapp' לא נמצא במאגר המקומי, הוא הורד מהרשת (Docker Hub). המיכל מכיל סקריפט פייתון פשוט (app.py) שמיישם אפליקצית רשת.

נריץ שוב את הפקודה docker ps (הפעם עם הדגל l- בו נבקש לקבל מידע נוסף על זמן הרצת הסקריפט)

הערה: הפורט 49153 בצד הלקוח מופה לפורט 5000 בצד השרת.

נגלוש לכתובת זאת ונקבל את המסך הבא:

webapp1

כדי לצפות בלוגים של השרת נריץ את הפקודה הבאה:

הערה: הדגל f- גורם ל- docker להתנהג כמו הפקודה tail -f (כלומר להמשיך להאזין ללוגים ולא לצאת מהמשימה בסיום הרצת הפקודה).

כדי לצפות בתהליכים הרצים בתוך המיכל נריץ את הפקודה top:

ניתן להבחין שהפקודה python app.py היא הפקודה היחידה שרצה במיכל.

כדי לעצור את עבודת המיכל נריץ את הפקודה הבאה:

אם נרצה להריץ שוב את המיכל יש לנו שתי אפשרויות: לחדש את ריצת המיכל (מאותה הנקודה שרץ בעבר) או לאתחל אותו:

נריץ שוב את הפקודה pocker ps -l וניראה שהמיכל רץ כבר 41 דקות – כלומר חידשנו את פעולתו.

לעומת זאת הפקודה restart תגרום להפסקת פעולת המיכל וריצתו מחדש (מאפס):

כפי שניתן להיווכח:

כדי להסיר את המיכל יש תחילה לעצור אותו (stop) ורק לאחר מכן נוכל להסיר אותו באמצעות בפקודה rm:

עד לנקודה זאת תמיד השתמשנו במיכלים מוכנים שהורדנו מ- Docker Hub. בחלק הבא נלמד להכין מיכלים בעצמנו

Docker – חלק רביעי

מושג שחשוב להכיר בעבודה עם Docker הוא Docker Hub. מה זה Docker Hub ולמה הוא משמש?

  • מדובר במחסן מרכזי שמרכז את המיכלים של המשתמשים
  • מספק למשתמשים כלים לבניה וניהול של מיכלים
  • מאפשר שיתוף מיכלים עם עמיתים
  • מספק כלי ניהול ובקרת גרסאות באמצעות Github

ניתן לפתוח חשבון ב- Docker Hub בקישור הבא.
להמשיך לקרוא Docker – חלק רביעי

Docker – חלק שני

בפרק הקודם הסברתי את המונח Docker ואת היתרונות שלו על פני VM. הפעם אהיה יותר מעשי ואמחיש את אופן העבודה עם Docker.

מנוע Docker מורכב משני חלקים: צד שרת וצד לקוח. בצד השרת קיים Daemon שמנהל את המכלים (containers). צד הלקוח "מדבר" עם ה- Daemon (יכול לחפש, להוריד או לאחסן Container Image ועוד…)

להמשיך לקרוא Docker – חלק שני

Docker – חלק ראשון

Docker הוא מוצר שכובש לאחרונה את סביבות השרתים ומערכות הענן השונות. אז מהו Docker ובמה הוא שונה מתחום ה- VM?

container_vs_vm

אסביר את האיור:

VM ‏ (Virtual Machine)

בצד שמאל מופיע תרשים של מערכת וירטואליזציה (VM) אופיינית: בשכבה התחתונה השרת עצמו ("הברזל"), בשכבה מעל רצה מערכת ההפעלה של מוצר הוירטואליזציה, שכבת ה- Hypervisor היא שכבה המדמה קושחה ומאפשרת בניה והרצה של מערכות הפעלה וירטואליות מעליה. שלוש שכבות אלו הן התשתית של מערכת ה- VM. מעל תשתית זאת ניתן להתקין מערכות הפעלה שונות (כל גרסה של חלונות, לינוקס ועוד…)

להמשיך לקרוא Docker – חלק ראשון