Docker

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה לניווט קפיצה לחיפוש
Docker
Docker (container engine) logo.svg
מפתח Docker, Inc.
תאריך השקה 13 March 2013; 5 years ago (2013-03-13)
גרסה אחרונה 19.03.5 (14 בנובמבר 2019) עריכת הנתון בוויקינתונים
מערכת הפעלה לינוקס, Microsoft Windows, MacOS עריכת הנתון בוויקינתונים
נכתבה בשפות Go עריכת הנתון בוויקינתונים
סוג רישיון אפאצ'י 2.0, רישיון תכנה לא־חופשי עריכת הנתון בוויקינתונים
docker.com
לעריכה בוויקינתונים שמשמש מקור לחלק מהמידע בתבנית OOjs UI icon info big.svg

Docker הוא פרויקט קוד פתוח של תוכנית מחשב שמספקת שכבה נוספת של הפשטה ואוטומציה של התקנה והרצת יישומים בתוך מכולות תוכנה המנוהלות על ידי וירטואליזציה ברמת מערכת ההפעלה על Windows, macOS ו - Linux.[1] המערכת פותחה על ידי Docker, Inc. בעיקר עבור לינוקס, ועושה שימוש בגישה לקרנל לינוקס, כגון: cgroups, ו-Kernel Namespaces, וכן במערכת קבצים טעינה (Union Capable), כגון OverlayFS ואחרים[2] כדי לאפשר ל"מיכל" לרוץ כמופע אחד של לינוקס, וזאת כדי למנוע תקורה של הקמה ותחזוקה של מכונות וירטואליות (VMs).[3]

הקרנל של לינוקס מבודד יישום זה בסביבת מערכת ההפעלה, כולל כל התהליכים שרצים, הרשת, שמות משתמשים ומערכת הקבצים. ואינו דורש שימוש רב במשאבי זיכרון ו-CPU. מאז גרסה 0.9, Docker כולל את libcontainer הספרייה (בתכנות) אשר בה אפשרות להשתמש ישירות ביכולות הווירטואליזציה שסופקו על ידי הקרנל של לינוקס, בנוסף לשימוש מופשט בממשקים באמצעות libvirt, LXC ו systemd-nspawn. בעצם ניתן לממש על מחשב אחד, מערכת ומסביבה כל המערך הנדרש דוגמת עם שרת אינטרנט, מסד נתונים וכדומה, והכל בתוך מכולה (קונטיינר) אחד, מספר מכולות יכולות לרוץ על מחשב אחד בו זמנית וגם ליצור תקשורת אחת מול השנייה.

הארגונים המרכזיים שתרמו בשנת 2016 לפרויקט Docker היו: "The Docker Team" ‏, Cisco, Google, Huawei, IBM, Microsoft, ו-Red Hat.

היסטוריה[עריכת קוד מקור | עריכה]

סולומון הייקס החל לתכנן את Docker בצרפת כפרויקט פנימי בחברת dotCloud , בשיתוף איתו עבדו בפרויקט אנדריאה לוזרדי ופרנסואה-אקסבייר Bourlet. ג'ף לינדסי גם הפך שותף מעורב כגוף עצמאי בפרויקט.

המערכת הוצגה לציבור לראשונה בכנס מפתחי פייתון - PyCon ב-2013. 

ב-2015, פורסם מדריך על התוכנה על ידי אדריאן מוהט.

אימוץ[עריכת קוד מקור | עריכה]

  • ב-19 בספטמבר 2013, Red Hat Docker הודיעו על שיתוף פעולה סביב Fedora, Red Hat Enterprise Linux, OpenShift.
  • בנובמבר 2014 Docker "שירותי מכולות" הוכרזו על ידי אמזון אלסטי Cloud.
  • ב-10 בנובמבר 2014, Docker הודיעה על שותפות עם Stratoscale.
  • ב-4 בדצמבר 2014, IBM הודיעה על שותפות אסטרטגית עם Docker והאפשרות לשימוש בתוכנה עם שירותי הענן של IBM.
  • ב-22 ביוני 2015, Docker ועוד מספר חברות הודיעו כי הם עובדים על מערכת הפעלה עצמאית עבור תוכנת המכולות.
  • במאי 2016 ניתוח נתונים הראה מספר ארגונים עיקריים התומכים ותורמים לשימוש בDocker, הארגונים הם: סיסקו, גוגל, Huawei, IBM, Microsoft, ו-Red Hat.
  • בינואר 2017 בעת ניתוח של מאפייני פרופילים ב-LinkedIn‏, Docker הראה נוכחות שגדלה ב-160% מאז 2016. התוכנה הורדה יותר מ-13 מיליארד פעמים עד 2017.

ביצוע[עריכת קוד מקור | עריכה]

Docker יכול להשתמש בממשקים שונים כדי לגשת לתכונות וירטואליות בקרנל של לינוקס.

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

Docker מיישמת API כדי לספק אפשרות למכולות לנהל תהליכים בבידוד, כלומר בסביבה נפרדת מהסביבה בה מערכת ההפעלה פועלת.

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

מכולה (קונטיינר) בDocker זוהי מכונה שמריצה את כל מה שהמפתח צריך כדי שמערכת תפעל. למשל PHP ו-Apache או למשל node ולינוקס. כל המכונות מבוססות לינוקס. כל קונטיינר מוגדר עם קובץ הגדרות. בקובץ ההגדרות כתוב שנדרש PHP מגרסה 7 ו-apache מגרסה 2.1. Docker לוקח את קובץ ההגדרות ויוצר מכולה – מכונה וירטואלית שיש בה את מה שאנחנו רוצים ומוגדרת כבר עם מערכת קבצים שמתממשקת, פורט משל עצמה וכו’. וכל זה נעשה בקלות ובמהירות.

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

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

שילוב[עריכת קוד מקור | עריכה]

Docker יכול להיות משולב עם תשתיות נפוצות רבות, ביניהן Amazon Web Services,Ansible,CFEngine,שף - Google Cloud Platform,IBM Bluemix,HPE הליון Stackato, Jelastic, ג'נקינס, Kubernetes ,תכלת הרקיע של Microsoft,OpenStack נובה,OpenSVC,Oracle מיכל שירות ענן, בובות, מלח,נווד, ו - VMware vSphere משולב מכולות.

עבור Windows[עריכת קוד מקור | עריכה]

ב-15 באוקטובר 2014, הודיעה Microsoft על מנוע ה-Docker עם המהדורה הבאה של Windows Server , ותמיכה מקומית בDocker על מערכות שרת-לקוח ב-Windows.ב-8 ביוני 2016, מיקרוסופט הודיעה כי Docker יכול לשמש באופן מקורי ב-Windows 10 עם Hyper-V.

רכיבים[עריכת קוד מקור | עריכה]

שירות Docker מורכב משלושה חלקים:

  • תוכנה: נקרא "dockerd" תהליך ליצירת המכולות (קונטיינרים) והאבוייקטים הקיימים בהן. ברקע קיים תהליך API ובקשות שנשלחו על ידי Docker מבצעות קישור עם רכב ה-API. כדי ליצור הקשרים אל מערכת ההפעלה ויישומים קיימים אחרים. 
  • אובייקטים : אובייקטים בDocker מתייחסים לגופים שונים המשמשים להרכבת יישום בDocker. הDocker הראשי הוא יצירת המכולות והשירותים.
    • מיכל בDocker מנוהל על ידי ממשק API.
  • שירות Docker מאפשר לנהל מספר מכולות במקביל וליצור "נחיל" - אוסף של קונטיינרים, ואותם ניתן לנהל ולתת עדיפות בסדר העבודה

כלים[עריכת קוד מקור | עריכה]

  • Docker קומפוסר הוא כלי עבור הגדרות וניהול המיכלים והיישומים. Docker משתמש ב- YAML כדי להגדיר את היישום של שירותים ומבצע את היצירה ואת התחלת התהליך של כל המכולות בפקודה אחת. Docker-קומפוסר CLI - שירות שמאפשר למשתמשים להפעיל פקודות על מספר מכולות בבת אחת, לדוגמה, בניית תמונות, סילומיות מכולות, מנהל מכולות, ועוד.

ראו גם[עריכת קוד מקור | עריכה]

קישורים חיצוניים[עריכת קוד מקור | עריכה]

ויקישיתוף מדיה וקבצים בנושא Docker בוויקישיתוף

הערות שוליים[עריכת קוד מקור | עריכה]

  1. ^ O'Gara, Maureen (26 ביולי 2013). "Ben Golub, Who Sold Gluster to Red Hat, Now Running dotCloud". SYS-CON Media. בדיקה אחרונה ב-9 באוגוסט 2013. 
  2. ^ "Select a storage driver documentation". Docker documentation. ארכיון ארכיון מהמקור מ-2016-12-06. בדיקה אחרונה ב-7 בדצמבר 2016. 
  3. ^ "Docker Documentation: Kernel Requirements". docker.readthedocs.org. 4 בינואר 2014. אורכב מ-המקור ב-2014-08-21. בדיקה אחרונה ב-20 באוגוסט 2014.