ההבדל בין תמונות דוקר למכולות

1. סקירה כללית

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

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

במדריך זה נלמד מה הם וכיצד הם נבדלים.

2. תמונות דוקר

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

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

נניח שאנחנו רוצים ליצור תמונת Docker של יישום Hello World Java. הדבר הראשון שעלינו לחשוב עליו הוא מה צריך היישום שלנו.

כדי להתחיל, מדובר ביישום Java, לכן נצטרך JVM. בסדר, זה נראה קל, אבל מה JVM צריך להפעיל? היא זקוקה למערכת הפעלה. לָכֵן, לתמונת ה- Docker שלנו תהיה שכבת מערכת הפעלה, JVM ויישום Hello World.

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

נניח שאנחנו רוצים ליצור מסד נתונים באמצעות מסד הנתונים PostgreSQL. איננו צריכים ליצור תמונת PostgreSQL חדשה מאפס. אנחנו פשוט הולכים ל- Docker Hub, מחפשים פוסטגרס, שהוא שם התמונה הרשמי של Docker עבור PostgresSQL, בחר את הגרסה הדרושה לנו והפעל אותה.

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

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

$ docker images תגובת מאגר תמונה מזהה תמונה נוצר גודל postgres 11.6 d3d96b1e5d48 לפני 4 שבועות 332MB mongo האחרון 9979235fc504 לפני 6 שבועות 364MB rabbitmq 3-management 44c4867e4a8b לפני 8 שבועות 180Mb mysql 8.0.18 d435e2 2dbb לפני חודשיים 757MB flyway / flyway 6.0.8 0c11020ffd69 לפני 3 חודשים 247MB java 8-jre e44d62cf8862 3 שנים לפני 311MB

3. הפעלת תמונות Docker

תמונה מופעלת באמצעות ה- לרוץ דוקר פקודה עם שם התג ותג. בואו נגיד שאנחנו רוצים להריץ את התמונה של postgres 11.6:

רציף docker -d postgres: 11.6

שים לב שסיפקנו את אוֹפְּצִיָה. זה אומר לדוקר להפעיל את התמונה ברקע - המכונה גם מצב מנותק.

משתמש ב docker ps נוכל לבדוק אם התמונה שלנו פועלת עלינו להשתמש בפקודה זו:

$ docker ps מזהה מכולה תמונה פקודה שמות סטטוסים נוצרים 3376143f0991 postgres: 11.6 "docker-entrypoint.s ..." לפני 3 דקות למעלה 3 דקות 5432 / tcp tender_heyrovsky

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

4. מיכלי דוקר

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

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

עכשיו בואו נחשוב שוב על ה לָרוּץ פקודה שראינו לעיל. אמרנו שהוא משמש להפעלת תמונות, אבל זה לא לגמרי מדויק. האמת היא שה- לָרוּץ רגילה לפקודה לִיצוֹר ו הַתחָלָה מיכל חדש של התמונה.

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

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

5. מחזור חיים של מיכלים

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

הפעלת מכולה חדשה מחייבת אותנו לִיצוֹר זה ואז הַתחָלָה זה. פירוש הדבר שעליו לעבור את מצב היצירה לפני שהוא יכול לפעול. אנו יכולים לעשות זאת על ידי יצירה והפעלת המכולה באופן מפורש:

מיכל העגינה יוצר: התחל מיכל העגינה 

או שאנחנו יכולים לעשות זאת בקלות עם ה- לָרוּץ פקודה:

ריצת דוקר:

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

הושהה את העגינה 

מיכל מושהה יציג את "מושהה" כסטטוס כשאנחנו בודקים את התהליכים:

$ docker ps מזהה מכולה תמונה פקודה יצירה של נמלי סטטוס שמות 9bef2edcad7b postgres: 11.6 "docker-entrypoint.s ..." לפני 5 דקות למעלה 4 דקות (מושהית) 5432 / tcp tender_heyrovsky

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

דוקר עצור התחל 

ולבסוף, אנו יכולים להסיר מיכל:

מכולה docker rm 

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

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

6. מסקנה

במאמר זה דנו בתמונות ומכלים של Docker וכיצד הם נבדלים. תמונות מתארות את היישומים וכיצד ניתן להריץ אותם. מיכלים הם המקרים של התמונה, שבהם ניתן להריץ מיכלים מרובים של אותה תמונה, כל אחד במצב שונה.

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

כעת, כשאנו מכירים את היסודות, הגיע הזמן ללמוד עוד על עולמו המרתק של דוקר ולהתחיל להגדיל את הידע שלנו!


$config[zx-auto] not found$config[zx-overlay] not found