דוקר: docker מה זה, למה זה מיועד ולמה זה יותר טוב מהתקנה רגילה
-
לחזור לנושא...
אני אתרום את חלקי, אבל יש לי רק ידע תיאורטי בזה ולא מעשי.
מה זה Docker? לפני שתבין מה זה דוקר אתה חייב להבין מה זה container - קונטיינר.
קונטיינר (מיכל בתרגום ישיר) הוא תהליך (או קבוצת תהליכים, תהליך ראשי שמוליד עוד תהליכים וכולם נמצאים באותו קונטיינר) שמערכת ההפעלה מבודד אותם אותם משאר המערכת. הם כאילו נמצאים בבועה בלי לדעת (ובלי יכולת לדעת, ובלי צורך לדעת) מה קורה בעולם הרחב של שאר חלקי מערכת ההפעלה.
(בלינוקס זה מבוסס על טכנולוגיית namespaces.)
במה הם מבודדים?- מערכת הקבצים - הם רואים רק את החלק של מערכת הקבצים שאתה רוצה שהם יראו. (בד"כ זה מערכת קבצים נפרד לגמרי משאר המערכת, כך שאפשר להריץ הפצת redhat על מערכת שמבוסס על debian וכו')
- תהליכים - הם רואים רק תהליכים שנמצאים באותו קונטיינר, מזהי תהליכים שבתוך הקונטיינר לא תואמים את מזהי התהליכים שמחוץ. PID 1 בתוך הקונטיינר לא מציין את אותו תהליך שקיבל מזהה PID 1 מחוץ.
- רשת - הם מקבלים את כל מרחב הפורטים כאילו אין עוד תהליכים במערכת. הם מקבלים מתאמי רשת בלעדיים, כתובות IP משלהם.
- משתמשים מזהי המשתמשים בתוך הקונטיינר לא מתאימים לאלה שמחוץ. לדוגמה: UID 500 שבתוך הקונטיינר זה לא אותו משתמש מחוץ לקונטיינר. תהליכים שבתוך הקונטיינר לא יודעים ממשתמשים שמחוץ.
בקיצור זה קבוצת תהליכים שחיים בתוך בועה בתוך מערכת ההפעלה.
עוד מושג שכדאי להכיר זה union mount. זה סוג של מערכת קבצים ווירטואלית שמציג למשתמש תמונה שמתקבל מאיחוד כמה מערכות קבצים ביחד. זה מאפשר להשתמש בתמונת מערכת שהוא לקריאה בלבד, ולשים על גביו שכבה דקה שהוא לכתיבה, ולאחד אותם על ידי union mount כדי לתת רושם של מערכת קבצים שלמה לקריאה/כתיבה.
עכשיו לדוקר,
דוקר זה תוכנה (ושירות) שמשתמשת בטכנולוגיות הנ"ל כדי לעטוף אפליקציות בצורה מאוד קלה להתקנה וניהול.
כל אפליקציית דוקר בנוייה משכבה/כמה שכבות לקריאה בלבד. ועל גביהם יש שכבה של קריאה/כתיבה.
האפליקציה מורצת בתוך container כאשר מערכת הקבצים שלה היא האיחוד הזה של השכבות.
התהליכים של האפליקציה חיים בתוך הבועה של מערכת הקבצים הנ"ל. ולא איכפת להם מה שקורה מסביב. זה מקל מאוד על ההתקנה הניהול. שום שינוי שתעשה שמחשב לא ישפיע על האפליקציה, וכן כל התלויות של האפליקציה נמצאים בתוך הקונטיינר.
משהו השתבש? פשוט מוחקים את הקונטיינר. זה מוחק רק את השכבה העליונה. ומייצרים עוד קונטיינר, זה פעולה זולה מאוד מבחינת ביצועים כי צריך רק לייצר את השכבה העליונה. כל השאר לקריאה בלבד ונמצא כבר על המחשב.(עוד דרך לחשוב על זה, הוא שאתה מקבל את היתרונות של VM - כלומר בידוד - בלי החסרונות - ביצועים)
מקווה שזה מובן...
-
@yzahn אמר בדוקר: docker מה זה, למה זה מיועד ולמה זה יותר טוב מהתקנה רגילה:
@WWW בדקתי בקוד המקור, ואני רואה שזה אותו regex שעושה את הלינק, שגם מודיע למשתמש.
מעניין, כי @david כתב בתחומים כמו שכתבתי, ואם אני זוכר טוב גם בדקתי את זה וקיבלתי התראה.
-
@WWW אמר בדוקר: docker מה זה, למה זה מיועד ולמה זה יותר טוב מהתקנה רגילה:
@yzahn אמר בדוקר: docker מה זה, למה זה מיועד ולמה זה יותר טוב מהתקנה רגילה:
@WWW בדקתי בקוד המקור, ואני רואה שזה אותו regex שעושה את הלינק, שגם מודיע למשתמש.
מעניין, כי @david כתב בתחומים כמו שכתבתי, ואם אני זוכר טוב גם בדקתי את זה וקיבלתי התראה.
-
@yzahn אמר בדוקר: docker מה זה, למה זה מיועד ולמה זה יותר טוב מהתקנה רגילה:
@יאיר-מן הרשות נתונה. הייתי משקיע יותר בזה רק שאין לי עכשיו עצבים לזה.
נשמח מאוד שכשיהיה לך עצבים תשקיע בזה, המכלול צריך אנשים כמוך, תחת איזה רשיון אתה רוצה לשחרר את הטקסט?
-
@יאיר-מן אמר בדוקר: docker מה זה, למה זה מיועד ולמה זה יותר טוב מהתקנה רגילה:
תחת איזה רשיון אתה רוצה לשחרר את הטקסט
רשיון "לא איכפת לי כלום, תעשו מה שבא לכם עם זה"
האמת שאני קצת מזלזל כי אני משתמש בוויקיפידיה באנגלית והרמה שם הרבה הרבה יותר גבוהה
אבל אולי הייתי צריך להעריך יותר את התועלת שיש בזה לישראלים -
המכלול מתעדכן מויקיפדיה?
-
איך? אוטמטית או ידנית?