657
0

למה כולם אוהבים את Docker? סקירה ודברים בסיסיים שאתם חייבים להכיר

657
זמן קריאה: 4 דקות

פיתוח תוכנה היום דורש הרבה יותר מאשר “רק” כתיבת קוד. מגוון שפות, אינספור frameworks, אינטרפייסים שונים, וכן ריבוי כלים שחברות ומפתחים הנגישו בקוד פתוח- כל אלו הופכים את תהליך הפיתוח והדילוור למורכבים ומסובכים הרבה יותר. 

Docker מפשט ומאיץ את זרימת העבודה, ונותן לנו המפתחים את החופש לבחור את הכלים, סוגי האפליקציות והטכנולוגיות שאנו צריכים לכל פרוייקט. 

מה זה Docker?

Docker היא פלטפורמת קוד פתוח שהוקמה על ידי Solomon Hykes (קישור לויקי) בשנת 2013, דוקר היא הפלטפורמה שתדאג לבנות, להריץ ולשתף את היישומים / הסרביסים שלכם על גבי קונטיינרים. היא לא רק אהובתן של כוחות הלינוקס כמו רד האט וקנוניקל- אפילו חברות תוכנה קנייניות כמו אורקל ומייקרוסופט אימצו את Docker. כיום, כמעט כל חברות ה-IT והענן משתמשות בשירותי Docker.

למה כולם אוהבים את דוקר?

קונטיינרים משתמשים במערכות הפעלה משותפות, מה שהופך אותם להרבה יותר יעילים מ-hypervisors במונחים של משאבי מערכת. במקום וירטואליזציה של חומרה, קונטיינרים נחים על גבי מופע בודד – קפסולה קטנה ומסודרת המכילה את היישום שלך.
סיבה נוספת היא קונטיינרים שמתאימים לשילוב מתמשך/פריסה מתמשכת (CI/CD). זוהי מתודולוגיית DevOps שנועדה לעודד מפתחים לשלב את הקוד שלהם במאגר משותף מוקדם ולעתים קרובות, ולאחר מכן לפרוס את הקוד במהירות וביעילות.
Docker מאפשר למפתחים לארוז, לשלוח ולהפעיל בקלות כל אפליקציה כמיכל קל משקל, נייד, עצמאי, שיכול לפעול כמעט בכל מקום וכמובן קלות לפריסה בענן.

היתרונות של דוקר

  • החזר השקעה ROI – return of investment – במיוחד עבור חברות גדולות שצריכות לייצר הכנסות קבועות לטווח ארוך, הפתרון טוב כי הוא מוזיל את העליות באופן משמעותי ובכך להעלות את הרווחים.
  • זמן פריסה מהיר מאוד ללא צורך בהמתנה למערכת הפעלה (גם מבחינת בנייה וגם מבחינת הריסה).
  • ביטחון – האפליקציות שרצות על הקונטיינרים מבודדות זו מזו לחלוטין, דבר שמאפשר שליטה מלאה על זרימת התעבורה וניהולה.
  • Always on 

החסרונות של דוקר

  • פתרון לא שלם: במערכת חסרים המון פיצ’רים, ודוקר מקבלים המון בקשות לפיצ’רים חדשים שיכולים לשפר עוד יותר תהליכים מסוימים (למשל העתקת קבצים מהמכונה לקונטיינר)
  • לפעמים קונטיינר נופל ואז צריך אסטרטגיה של גיבוי ושחזור- אין לכך פתרונות אוטומטים.
  • דוקר פותרים את כל בעיות האבטחה – במילים אחרות – צריך לבדוק ולהעריך את סיכוני האבטחה שהם לקחו ולראות שהם מתאימים גם למערכת עליה עובדים.

מילות מפתח שמדברים על Docker

דוקר Image

אימג’ היא חבילה עצמאית ברת הרצה שמכילה כל מה שצריך כדי להריץ את האפליקציה (קוד, כלים שונים, ספריות והגדרות). אימג’ היא בעצם טמפלייט לקריאה בלבד עם הוראות כיצד ליצור ממנה קונטיינר, לפעמים תמונה תהיה מבוססת על תמונה אחרת עם קונפיגורציה שונה. 

כל אחד יכול ליצור תמונה או להשתמש בתמונות שאחרים פרסמו, על מנת ליצור תמונה חדשה צריך לייצר docker file שבו מוגדרים הצעדים שצריך לעשות על מנת להריץ את אותה תמונה. 

כל הוראה כזו מייצרת שכבה בתמונה, כך שהקובץ נבנה מחדש כאשר רק השכבות ששונו יעודכנו, מה שהופך את התמונות לקלות, קטנות ומהירות מאוד בהשוואה לטכנולוגיות וירטואליות אחרות.

פקודות שימושיות לאימג’

  • docker images [OPTIONS] [REPOSITORY[:TAG]]– show top level of images 
  • docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]   – tags images with a specific tag
  • docker push [OPTIONS] NAME[:TAG]  – pushes the images to specic cloud repo (with tags)
  • docker image rm [OPTIONS] IMAGE [IMAGE…]  – delete image 

בשנת 2013 docker הציגו את מה שהפך להיות סטנדרט תעשיה בשנים הבאות – קונטיינרים.

דוקר קונטיינר

קונטיינר הוא מופע בר הרצה של תמונה עם כל התלויות שלה וכל מה שצריך כדי שיוכל להריץ את האפליקציה בצורה מהירה ואמינה, ניתן לייצר, להתחיל, לעצור להזיז או למחוק קונטיינר באמצעות docker API or CLI.

הרעיון האבטחתי מאחורי הקונטיינר הוא היותו יחסית מבודד מקונטיינרים אחרים מהמכונה עליה הוא רץ, ניתן לשלוט ברמת הבידוד של הקונטיינר כמובן (מבחינת אחסון, רשת).

תמונה הופכת לקונטיינר בזמן הריצה על docker engine, זמין לאפליקציות מבוססות ווינדוס או לינוקס. 

פקודות שימושיות לקונטיינר

  • docker container prune [OPTIONS] – removes all stopped containers 
  • docker stop [OPTIONS] CONTAINER [CONTAINER…] – stop specific container from running (you will be able to run it again) 
  • docker kill [OPTIONS] CONTAINER [CONTAINER…]– will kill specific container (you won’t be able to run it again) 
  • docker start [OPTIONS] CONTAINER [CONTAINER…] – start specific container (might be an old one that used run) 
  • docker ps [OPTIONS] – show containers 

דוקר ווליום

ווליום הוא המכניזם המועדף בדרך כלל לשמירת דאטה המיוצרת על ידי הדוקר קונטיינר, והם מנוהלים לחלוטין על ידי דוקר. לווליום יתרונות רבים, כמו היותו קל לגיבוי, זמין לגישה באמצעות ה CLI\API, תפעול בלינוקס ווינדוס עם פרפורמנס מעולה ועוד.

פקודות שימושיות בווליומים: 

  • docker volume create [OPTIONS] [VOLUME] – create new volume 
  • docker volume inspect [OPTIONS] VOLUME [VOLUME…]– returns information about the volume
  • docker volume prune [OPTIONS]– removes all unused local volumes 
  • docker volume ls [OPTIONS]– lists all volumes known to docker 

כמובן שניתן לנתר לוגים בעזרת הפקודה docker logs [OPTIONS] CONTAINER, שכן כל קונטיינר מנותק לחלוטין מהקונטיינרים האחרים בד”כ לכל אחד יהיה את הלוגים שלו.

לסיכום

כדי שבאמת תוכלו להבין הכי חשוב זה להתנסות ,ממליצה לכם בחום להוריד Docker אל המחשב שלכם (להוראות התקנה לחצו כאן) ותנסו ליצור קונטיינר שתפרסו מתוך Image כלשהו שתוכלו למצוא בספריה של דוקר (לחצו כאן)

אם אין לכם מושג מה להתקין כדי להתנסות אתם יכולים להתקין למשל MySQL או כל סוג אחר של דאטה-בייס (ולחבר אותו לקוד שלכם), Nginx למקרה שבא לכם פרוקסי או RabbitMQ בשביל תור הודעות.

רבקה בר
WRITEN BY

רבקה בר

מהנדסת תוכנה עם 5 שנות ניסיון מקצועי וניהולי בעולמות הבקאנד בפרט והפיתוח בכלל
אמא ל 2 שתמיד מחפשת להרחיב את הידע וללמוד דברים חדשים

כתיבת תגובה

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