בפרק הקודם הדגמתי הרצת שתי פקודות במיכל (באמצעות הפקודה 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 בצד השרת.
נגלוש לכתובת זאת ונקבל את המסך הבא:
כדי לצפות בלוגים של השרת נריץ את הפקודה הבאה:
הערה: הדגל f- גורם ל- docker להתנהג כמו הפקודה tail -f (כלומר להמשיך להאזין ללוגים ולא לצאת מהמשימה בסיום הרצת הפקודה).
כדי לצפות בתהליכים הרצים בתוך המיכל נריץ את הפקודה top:
ניתן להבחין שהפקודה python app.py היא הפקודה היחידה שרצה במיכל.
כדי לעצור את עבודת המיכל נריץ את הפקודה הבאה:
אם נרצה להריץ שוב את המיכל יש לנו שתי אפשרויות: לחדש את ריצת המיכל (מאותה הנקודה שרץ בעבר) או לאתחל אותו:
נריץ שוב את הפקודה pocker ps -l וניראה שהמיכל רץ כבר 41 דקות – כלומר חידשנו את פעולתו.
לעומת זאת הפקודה restart תגרום להפסקת פעולת המיכל וריצתו מחדש (מאפס):
כפי שניתן להיווכח:
כדי להסיר את המיכל יש תחילה לעצור אותו (stop) ורק לאחר מכן נוכל להסיר אותו באמצעות בפקודה rm:
עד לנקודה זאת תמיד השתמשנו במיכלים מוכנים שהורדנו מ- Docker Hub. בחלק הבא נלמד להכין מיכלים בעצמנו