Skip to content

DevOpscore

קהילת ה-DevOps של ישראל

Menu
  • עמוד הבית
  • קצת עליי
  • מבוא
  • העשרה
  • Virtualization
  • IT
  • Learn from incidents
  • DevOps tools
    • Docker
    • Git
    • Ansible
    • Vagrant
    • Kubernetes
    • OpenShift
Menu

Docker basic demo

Posted on ינואר 18, 2021פברואר 5, 2021 by DevOpscore

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

אני מניח שבשלב הזה כבר התקנתם docker על המחשב שלכם. ה-demo יהיה בשיטת hands on כך שתראו פה דברים שאולי אינכם מכירים. באינטרנט יש את כל המידע, אני מזמין אתכם לחפש וללמוד (וכמובן שאם בכל זאת לא הבנתם, תשאלו אותי). אני אנסה להעביר לכם את המידע החשוב והמעניין.

מה ה-use case?

אתם רוצים להרים nginx (שרת web) בתוך container על המחשב שלכם, איך תעשו את זה?

ב-docker hub מרוכזים docker images. נחפש שם docker image שמכיל nginx. לאחר חיפוש הגענו לתוצאה הבאה:

ניכנס אליה ואז ללשונית של Tags.

נחפש במסך הבא את הטקסט alpine (הפצה לינוקסית קלת משקל):

נגלול למטה ונבחר docker image שה-tag שלו הוא alpine. זאת אמורה להיות התוצאה:

כדי להוריד את ה docker image למחשב שלנו נעתיק את הפקודה שרשומה מצד ימין למעלה ונריץ אותה ב shell של מערכת ההפעלה שלכם.

הפלט אמור להיות משהו כזה:

כמו שרשמתי במאמר הקודם, container הוא instance רץ של image. לכן, נרצה ליצור container מה-image שהורדנו.

בעמוד הראשי של כל docker-image, תראו תיעוד לגבי השימוש בו. במקרה שלנו זה נמצא כאן.

בואו נעשה את זה טיפה יותר מעניין, נניח שנרצה לשנות את קובץ ה-index.html של ה-nginx כדי שירשום לנו Hello. נוכל לעשות זאת אם נערוך מחדש את ה-docker image שעכשיו הורדנו.

איך נערוך את ה-docker image?

ניצור קובץ בתיקייה שבה אנחנו נמצאים בשם index.html

נשים בו את התוכן הבא:

<h1> Hello </h1>

לפי התיעוד, nginx מחפש קבצים שהוא יכול להגיש תחת התיקייה /usr/share/nginx/html. הוא מכיל שם קובץ index.html שהתוכן שלו נראה כך:

כעת נכתוב קובץ ששמו Dockerfile. כך, כשנבנה docker image בעצמנו – הוא יחפש קובץ כזה שיכיל את סט ההוראות.

אנחנו נרצה לדרוס את התוכן של index.html עם הקובץ שלנו. לכן, נשים ב-Dockerfile את התוכן הבא:

FROM nginx:alpine
COPY index.html /usr/share/nginx/html/index.html

אנחנו נותנים שתי הוראות. הראשונה היא הצהרה על כך שאנחנו משתמשים ב-nginx:alpine כ-base image שלנו. השנייה היא העתקה של קובץ שיצרנו אל תוך נתיב ב-nginx:alpine.

כך אמורה להיראות התיקייה שלנו:

עכשיו, נפתח shell מתוך התיקייה ואז נבנה את ה-image הזה בעזרת הפקודה:

docker build -t our-nginx:latest .

אנחנו אמורים לראות בפלט של הפקודה שזה עבר בהצלחה. כעת נריץ את ה-image הזה בתוך container (אגב, לא היינו חייבים לעשות docker pull כדי להשתמש ב-nginx:alpine. אם הוא לא היה מוצא אותו לוקאלית – הוא היה מחפש ב-docker hub):

docker run -it --rm -d -p 8080:80 --name our-cool-nginx-container our-nginx:latest

לא אסביר על כל ה-flagים שיש פה, אבל כן אסביר שיצרנו container שמבוסס על our-nginx:latest. בנוסף, 8080:80 אחרי p- מתייחס ל-port forwarding. כל תעבורה שמגיעה ל-host בפורט 8080, תעבור ל-container בפורט 80.

אחרי השורה הזאת נריץ את הפקודה:

docker ps

כך נדע שה-container רץ.

איך נדע שהכול עבד?

ניגש ל http://localhost:8080 ונראה שמוצג לנו עמוד עם הטקסט Hello:

איך נעצור ונמחק את ה-container שיצרנו?

docker container stop our-cool-nginx-container

כדאי לדעת: כשהרצנו את ה-container עם rm– הגדרנו שברגע שה-container ייעצר הוא גם יימחק. אם לא היינו עושים את זה, ה-container היה נשאר במצב stop. כדי לבדוק אם הוא נמחק, נריץ את הפקודה הבאה אחרי שעצרנו אותו:

docker ps -a

הפקודה הזאת תראה לנו container-ים שהם גם במצב stopped. כדי למחוק אותם מחליפים את המילה stop ב- rm.

לסיכום, זה היה demo ראשון ובסיסי בעולם ה-docker. חשוב שתמשיכו להתנסות בעצמכם ותוודאו שהבנתם הכול. אני כמובן אשמח לשמוע הארות, הערות, שאלות וכל שעולה על דעתכם ?.

!Join us on telegram

2 thoughts on “Docker basic demo”

  1. עדי הגיב:
    ינואר 19, 2021 בשעה 8:00 pm

    אדיר ממש. אשמח לעוד demoים

    הגב
  2. גלית הגיב:
    ינואר 21, 2021 בשעה 4:01 pm

    Demo מצוין! מדהים לראות בלוגים בתחום ה DevOps בעברית!

    בהצלחה! יוזמה מבורכת

    הגב

כתיבת תגובה לבטל

האימייל לא יוצג באתר. שדות החובה מסומנים *

Comment moderation is enabled. Your comment may take some time to appear.

פוסטים אחרונים

  • Deploy static websites with GitLab Pages
  • The DevOps Role – Part 2
  • The DevOps Role – Part 1
  • How to run an application on Openshift
  • ?What is Agile

קטגוריות

  • DevOps tools
    • Ansible
    • Docker
    • git
    • Kubernetes
    • OpenShift
    • Vagrant
  • IT
  • Learn from incidents
  • Virtualization
  • העשרה
  • מבוא
English Hebrew
© 2025 DevOpscore | Powered by Minimalist Blog WordPress Theme