הדרכת Docker - מבוא ל- Docker & Containerization



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

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

הדרכת דוקר

בלוג הדרכה זה של Docker ייתן לך את החשיפה הרעיונית והמעשית ל- Docker - טכנולוגיית מיכל עידן חדש.





בבלוג זה נתמקד בנושאים הבאים:

  • מהי וירטואליזציה?
  • מה זה מיכל
  • היתרונות של מיכל על פני וירטואליזציה
  • מבוא ל- Docker
  • היתרונות של Docker
  • וירטואליזציה לעומת מיכל
  • התקנת דוקר
  • Dockerfile, Docker Image & Docker Container
  • מהו Docker Hub?
  • אדריכלות דוקר
  • Docker Compose

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



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

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

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



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

מהי וירטואליזציה?

וירטואליזציה היא הטכניקה של ייבוא ​​מערכת הפעלה אורחת על גבי מערכת הפעלה מארחת. טכניקה זו הייתה גילוי בהתחלה מכיוון שהיא אפשרה למפתחים להריץ מספר מערכות הפעלה במכונות וירטואליות שונות שכולן פועלות על אותו מארח. זה ביטל את הצורך במשאב חומרה נוסף. היתרונות של מכונות וירטואליות או וירטואליזציה הם:

  • מערכות הפעלה מרובות יכולות לפעול על אותה מכונה
  • תחזוקה והתאוששות היו קלות במקרה של תקלות
  • גם עלות הבעלות הכוללת הייתה פחותה בגלל הצורך המופחת בתשתיות

אדריכלות מכונות וירטואליות - הדרכת דוקר על מבוא לדוקר - אדוריקה

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

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

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

להלן החסרונות של וירטואליזציה:

  • הפעלת מכונות וירטואליות מרובות מובילה לביצועים לא יציבים
  • Hypervisors אינם יעילים כמו מערכת ההפעלה המארחת
  • תהליך האתחול הוא ארוך ולוקח זמן

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

מה זה מיכל?

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

היתרונות של מיכל על פני וירטואליזציה:

  • מיכלים באותו גרעין מערכת ההפעלה הם קלים יותר וקטנים יותר
  • ניצול משאבים טוב יותר בהשוואה ל- VM
  • תהליך האתחול הוא קצר ונמשך מספר שניות

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

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

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

הדרכת Docker למתחילים | מה זה דוקר? | כלים DevOps | אדוריקה

עכשיו, תן לי להעביר אותך דרך ההקדמה ל- Docker.

הדרכת דוקר - מבוא לדוקר

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

משתנה ובלתי משתנה בג'אווה

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

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

היתרונות של Docker

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

וירטואליזציה לעומת מיכל

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

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

דמות: מה זה ניתוח נתונים גדולים - וירטואליזציה לעומת מיכל

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

עכשיו, תן לנו להתקין את Docker.

התקן את Docker:

אני אתקין את דוקר במכונת אובונטו 17.10 שלי. להלן השלבים להתקנת Docker:

  1. התקן חבילות נדרשות
  2. הגדר מאגר Docker
  3. התקן את Docker באובונטו

1. התקן חבילות נדרשות:

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

sudo apt-get install curl apt-transport-https ca-אישורי תוכנה-מאפייני-נפוץ

2. הגדרת מאגר Docker:

כעת, ייבא מפתח GPG רשמי של Dockers כדי לאמת את חתימת החבילות לפני התקנתם עם apt-get. הפעל את הפקודה הבאה במסוף:

תלתל -fsSL https://download.docker.com/linux/ubuntu/gpg | סודו apt-key להוסיף

כעת הוסף את מאגר ה- Docker במערכת אובונטו שלך המכיל חבילות Docker כולל התלות שלו, לשם כך בצע את הפקודה הבאה:

sudo add-apt-repository 'deb [arch = amd64] https://download.docker.com/linux/ubuntu $ (lsb_release -cs) יציב'

3. התקן את Docker באובונטו:

כעת עליך לשדרג את אינדקס apt ולהתקין את מהדורת הקהילה של Docker, לשם כך בצע את הפקודות הבאות:

sudo apt-get עדכון sudo apt-get להתקין docker-ce

מזל טוב! התקנת בהצלחה את Docker. כמו כן, בדוק כמה נפוצים פקודות Docker .

עכשיו בואו נראה כמה מושגים חשובים של Docker.

Dockerfile, Docker Image ו- Docker Container:

  1. תמונת Docker נוצרת על ידי רצף הפקודות שנכתבו בקובץ הנקרא בשם Dockerfile.
  2. כאשר קובץ Dockerfile זה מבוצע באמצעות פקודת docker הוא גורם לתמונת Docker עם שם.
  3. כאשר תמונה זו מבוצעת על ידי פקודת 'docker run' היא תפעיל בפני עצמה את כל היישומים או השירותים שעליהם להתחיל עם ביצועה.

רכזת דוקר:

Docker Hub הוא כמו GitHub עבור תמונות Docker. זה בעצם רישום ענן שבו אתה יכול למצוא תמונות דוקר שהועלו על ידי קהילות שונות, כמו כן אתה יכול לפתח תמונה משלך ולהעלות באמצעות Docker Hub, אך ראשית, עליך ליצור חשבון ב- DockerHub.

אדריכלות דוקר:

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

  1. שרת שהוא סוג של תוכנית ארוכת טווח הנקראת תהליך דמון (פקודת העגינה).
  2. ממשק API של REST המפרט ממשקים שתוכניות יכולות להשתמש בהן כדי לדבר עם הדמון ולהורות לו מה לעשות.
  3. לקוח ממשק שורת פקודה (CLI) (פקודת העגינה).
  4. ה- CLI משתמש ב- Docker REST API כדי לשלוט בדמון הדוקר או לקיים אינטראקציה באמצעות סקריפטים או פקודות CLI ישירות. יישומי Docker רבים אחרים משתמשים ב- API וב- CLI הבסיסיים.

עיין בבלוג זה לקריאה נוספת אודות .

לבסוף בבלוג זה של הדרכת Docker אדבר על Docker Compose.

Docker Compose:

Docker Compose משמש בעצם להפעלת מיכלי Docker מרובים כשרת יחיד. תן לי לתת לך דוגמה:

נניח שאם יש לי יישום שדורש וורדפרס, מריה DB ו- PHP MyAdmin. אני יכול ליצור קובץ אחד אשר יפעיל את שני המכולות כשירות ללא צורך להפעיל כל אחד בנפרד. זה באמת שימושי במיוחד אם יש לך ארכיטקטורת מיקרו-שירות.

עיין בבלוג שלי ב מיכל דוקר להבין כיצד לבצע זאת באופן מעשי.

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

עם זאת, אנו מגיעים לסוף הבלוג הראשון של Docker Tutorial בנושא מבוא ל- Docker & Containerization.

עברו על הבלוג הבא שלנו ב- Docker:

עכשיו אחרי שהבנת מה זה DevOps, בדוק את שלנו מאת אדוריקה, חברת למידה מקוונת מהימנה עם רשת של יותר מ -250,000 לומדים מרוצים הפרוסים ברחבי העולם. קורס הדרכת ההסמכה של Edureka DevOps עוזר ללומדים לרכוש מומחיות בתהליכי וכלים שונים של DevOps כמו Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack ו- GIT לאוטומציה של שלבים מרובים ב- SDLC.

יש לך שאלה עבורנו? אנא הזכיר זאת בסעיף ההערות ונחזור אליך.