Docker
דוקר (באנגלית: Docker) היא תוכנה בקוד פתוח המאפשרת התקנה והרצה של יישומים בתוך סביבה וירטואלית מבודדת הנקראת קונטיינר (מכולה). כל קונטיינר כולל תוכנות, ספריות וקובצי קונפיגורציה משלו. באופן זה, ניתן להריץ יישומים בצורה מבודדת וכך למנוע מהם ״להפריע״ לריצה של יישומים אחרים, וליהנות מסביבה מותאמת ואופטימלית לכל יישום.[1] אופן השימוש בקונטיינרים דומה במובן מסוים למכונה וירטואלית (VM), אך מאחר שכלל הקונטיינרים חולקים ליבה אחת, שימוש בהם גוזל מעט משאבים ביחס למכונות וירטואליות.[2] הקונטיינרים הם יחסית קלי משקל, כאשר מספר קונטיינרים יכולים לרוץ על מחשב אחד בו-זמנית, ואף לתקשר אחד עם השני. התוכנה מהווה פלטפורמה כשירות (PaaS), והיא משתמשת בווירטואליזציה ברמת מערכת ההפעלה, זאת בניגוד למכונה וירטואלית. המערכת תומכת בריצה על גבי Windows, macOS ולינוקס. המערכת פותחה על ידי חברת Docker, Inc. במקור נועדה לתמוך בלינוקס, ולכן היא משתמשת בתכונות מסוימות של ליבת לינוקס כמו cgroups, ו-Kernel Namespaces. בנוסף לכך, היא משתמשת במערכת טעינת קבצים (Union Capable) כגון OverlayFS ואחרים.[3][4] באמצעות תכונות הליבה הללו, ניתן לנטר את פעילות הקונטיינרים בצורה יעילה. מאז גרסה 0.9, המערכת כוללת את הספרייה libcontainer המאפשרת להשתמש ישירות ביכולות הליבה של לינוקס, זאת בנוסף לשימוש בממשקים מופשטים באמצעות libvirt, LXC ו-systemd-nspawn. ארגונים מרכזיים שתרמו בשנת 2016 לפרויקט Docker הם מיקרוסופט, IBM, גוגל, סיסקו, וואווי, ו-Red Hat. היסטוריההחברה Docker Inc נוסדה על ידי כאמל פונאדי, סולומון הייקס וסבסטיאן פאהל בשנת 2010, לאחר שהייקס החל לתכנן את הפרויקט בצרפת כפרויקט פנימי בחברת dotCloud. המערכת הוצגה לציבור לראשונה בכנס מפתחי פייתון – PyCon בשנת 2013. היא שוחררה כתוכנת קוד פתוח במרץ 2013. בתקופה זו, השתמשה דוקר ב-LXC בתור סביבת הביצוע שלה כברירת מחדל. כשנה לאחר מכן, עם שחרור גרסה 0.9 של דוקר, הוחלפה LXC ב-libcontainer. ב-19 בספטמבר 2013, Red Hat ודוקר הודיעו על שיתוף פעולה סביב פדורה, Red Hat Enterprise Linux, OpenShift. בסוף שנת 2014, דוקר הודיעה על שותפות עם Stratoscale, ומעט לאחר מכן אף IBM הודיעה על שותפות אסטרטגית עם דוקר ועל כך שניתן להשתמש בתוכנה עם שירותי הענן של IBM. בינואר 2017 בעת ניתוח של מאפייני פרופילים ב-LinkedIn, נמצא כי נוכחות Docker גדלה ב-160% מאז 2016. עד לשנת 2017, התוכנה הורדה יותר מ-13 מיליארד פעמים. בשנת 2017, יצרה דוקר את "מדריך מובי" למחקר ופיתוח פתוחים.[5] אופן פעולה![]() היכולת העיקרית של דוקר היא אריזת אפליקציה בתוך קונטיינר, יחד עם החבילות, התוכנות והספריות בהן תלויה פעולתה התקינה (Dependencies). המערכת מספקת API המאפשר לקונטיינרים לנהל תהליכים בסביבה מבודדת מהסביבה בה מערכת ההפעלה פועלת. באמצעות שימוש בקונטיינרים ניתן לפשט יצירה של מערכות מבוזרות ולתת למשתמש אפשרות עבודה עם יישומים, משימות ותהליכים מרובים, ולנהל את כל סביבת העבודה באופן עצמאי על מכונה פיזית אחת או על פני מספר רב של מכונות וירטואליות. הקונטיינר מיועד לרוץ על כל מערכת לינוקס, ווינדוס או מק, בין אם על ענן, ובין אם על מחשב מקומי (On-premises). מאחר שהקונטיינרים בדוקר הם קלי-משקל, שרת אחד או מכונה וירטואלית אחת מסוגלים להריץ מספר קונטיינרים באופן סימולטני. ניתוח משנת 2018 גילה ששימוש טיפוסי בדוקר כולל שמונה קונטיינרים לכל מארח, וכן שרבע מהארגונים שנבדקו במסגרת הניתוח מריצים למעלה מ-18 קונטיינרים לכל מארח. דוקר מאפשרת בקלות יחסית לכתוב קוד כלשהו ולהריץ אותו בכל סביבה תכנותית או מערכת-הפעלה בה המשתמש נמצא. זאת ועוד, דוקר מאפשרת למערכת מחשוב שלמה לרוץ על אותה סביבה, גם אם תוכנה מסוימת דורשת מערכת הפעלה ייחודית ושונה, חיבורים לשרתים שונים וכדומה. כלומר, כאשר מעוניינים לעבוד יחד על פרויקט או להריץ תוכנה מסוימת בסביבות שונות, דוקר חוסכת לכל המשתמשים בדיקות והתאמות כמו גרסה של מסד-נתונים או גרסה של שירות רשת כלשהו (שיתוף קבצים לדוגמה), ומאפשרת לאכוף את אותה סביבת עבודה לכל המפתחים בקלות. יתרון נוסף של דוקר על מכונות וירטואליות הוא שזמן הטעינה של קונטיינר קצר ביותר (מספר שניות), בעוד שטעינה של מכונה וירטואלית היא איטית. בנוסף, ניתן להגדיר קונטיינר יחסית בקלות באמצעות קובץ הגדרות. שילוב עם תשתיות שונותדוקר יכולה להשתלב עם תשתיות פופולריות רבות, בהן Amazon Web Services, Ansible, CFEngin, Google Cloud Platform, IBM Bluemix, HPE, Stackato, Jelastic, Jenkins, Kubernetes, Microsoft Azure, OpenStack נובה, OpenSVC, Oracle ועוד. ב-15 באוקטובר 2014, הודיעה מיקרוסופט על מנוע הדוקר עם המהדורה הבאה של Windows Server, ועל תמיכה מקומית של מערכות שרת-לקוח של Windows בדוקר. רכיביםדוקר מורכבת משלושה חלקים:
כלים
version: "3.9"
services:
web:
build: .
ports:
- "8000:5000"
redis:
image: "redis:alpine"
פקודות בסיסיותעל מנת להעלות קונטיינר, יש להשתמש בפקודה על מנת להריץ פקודה בקונטיינר, למשל, הדפסת 'hello', יש להשתמש בפקודה על מנת לראות את רשימת הקונטיינרים הקיימים, יש להשתמש בפקודה על מנת להוריד קובץ Image, יש להשתמש בפקודה ראו גםקישורים חיצוניים
הערות שוליים
|