Docker

מתוך ויקיפדיה, האנציקלופדיה החופשית
Gnome-colors-edit-find-replace.svg
יש לשכתב ערך זה. הסיבה לכך היא: ויקיזציה, תרגמת בהיקף גדול.
אתם מוזמנים לסייע ולתקן את הבעיות, אך אנא אל תורידו את ההודעה כל עוד לא תוקן הדף. אם אתם סבורים כי אין בדף בעיה, ניתן לציין זאת בדף השיחה.
Docker
Docker (container engine) logo.svg
מפתח Docker
תאריך השקה 13 March 2013; 5 years ago (2013-03-13)
גרסה אחרונה 20.10.7 (2 ביוני 2021) עריכת הנתון בוויקינתונים
מערכת הפעלה לינוקס, Microsoft Windows, macOS, מערכת הפעלה דמוית יוניקס עריכת הנתון בוויקינתונים
נכתבה בשפות Go עריכת הנתון בוויקינתונים
סוג רישיון אפאצ'י 2.0, רישיון תכנה לא־חופשי עריכת הנתון בוויקינתונים
קוד מקור https://github.com/moby/moby עריכת הנתון בוויקינתונים
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.js. כל המכונות מבוססות לינוקס. כל קונטיינר מוגדר עם קובץ הגדרות. אם בקובץ ההגדרות כתוב שנדרש PHP מגרסה 7 ו-apache מגרסה 2.1, Docker לוקח את קובץ ההגדרות ויוצר קונטיינר – מכונה וירטואלית שיש בה את מה שאנחנו רוצים ומוגדרת כבר עם מערכת קבצים שמתממשקת, פורט משל עצמה וכו'. וכל זה נעשה בקלות ובמהירות.

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

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

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

Docker יכול להיות משולב עם תשתיות נפוצות רבות, בהן Amazon Web Services, Ansible, CFEngine, שף - Google Cloud Platform,I BM Bluemix ,HPE הליון, Stackato ,Jelastic ,‎Jenkins, 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 קומפוז (compose) הוא כלי עבור הגדרות וניהול הקונטיינרים והיישומים. 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.