MongoDB היא מסד נתונים מסמכים פופולרי, פתוח המספק ביצועים גבוהים וגמישות גדולה. אבל האם ניסית להניח containerize מסד נתונים של MongoDB לפרויקטים שלך? אם לא, אז אתה עומד לקבל הפתעה!
במדריך זה, תלמד כיצד להפעיל, לאבטח ולנהל את MongoDB באופן יעיל עם Docker. אז תמשיך לקרוא ותהפוך למומחה העצמי שלך לפיתוח מכלי MongoDB של Docker!
דרישות קדם
מדריך זה כולל הדגמות מעשיות. כדי להמשיך, הקפד לוודא שיש לך את הדברים הבאים:
- מחשב Ubuntu – מדריך זה משתמש ב Ubuntu 20.04 LTS
- A user with
sudo
permission - Docker – מדריך זה משתמש ב-Docker 20.10.9
הורדת תמונת Docker MongoDB
לפני שתוכל להפעיל ולנהל מכלי Docker MongoDB, עליך תחילה להוריד תמונת MongoDB מ-Docker Hub כך שתוכל להריץ את מכלי MongoDB באופן מקומי.
הרץ את הפקודה docker
למטה כדי להוריד את תמונת ה- MongoDB Community Edition (CE) (pull mongo
), שהיא מתארחת על ידי Docker Hub. הגרסה האחרונה של תמונה זו בזמן כתיבת הטקסט היא 4.2.
כפי שאתה רואה למטה, הפקודה מושכת אוטומטית את הגרסה האחרונה של התמונה ומסמנת אותה כ-latest.

עכשיו הרץ את הפקודה docker images
למטה כדי לרשום את כל התמונות הזמינות בשרת שלך.
מתחת לכך, תראה את תמונת ה- MongoDB עם התיוג latest.

הרצת קונטיינר MongoDB באמצעות Docker
מתוך תמונת MongoDB שהורדת, תוכל כעת להפעיל קונטיינר MongoDB. תאתחל את קונטיינר MongoDB שלך עם הפקודה mongo, תיצור ספריית נתונים. אתה תגדיר את המיפוי בין אזור הנתונים של קונטיינר Docker ובין מכונת המארח.
1. הרץ את הפקודה mkdir
למטה כדי ליצור ספריית נתונים בשם mongodata
לאחסון מסד הנתונים והלוגים של MongoDB.
2. לאחר מכן, בצע את הפקודה docker run
למטה כדי ליצור קונטיינר בשם mymongo
. בנוסף, הקונטיינר מופעל עם TTY פיקטיבי אינטראקטיבי (-it
), במקרה שהפלט ייראה בעת התחלת הקונטיינר.
לבסוף, הספרייה שנוצרה לאחרונה mongodata מחוברת (-v
) לספרייה הפנימית, /data/db. אפשרות ה-d
מפעילה את הקונטיינר במצב נפרד, כך שהוא רץ כתהליך רקע ומחזיר את פלט הקונסולה לאחר היצירה.
המערכת יוצרת אוטומטית את ספריית ה/data/db כאשר אתה מריץ את הקונטיינר כדי לאחסן נתונים של השינויים שאתה מבצע בקונטיינר. ספרייה זו פועלת במצב דומה לקריאה בלבד ומאפשרת אחסון נתונים קבוע במערכת המארחת.
לאחר שהפקודה מתבצעת בהצלחה, תראה פלט כמו זה שלמטה.

3. לבסוף, הפעל את הפקודה docker ps
שלמטה כדי לזהות את מזהה הקונטיינר ולבדוק את מצבו. פקודת הdocker ps
מציגה את כל המידע על הקונטיינר הפועל כרגע.
פקודת ה
docker ps
דומה לפקודת הps
הרגילה בלינוקס.
בפלט שלהלן, תוכל לראות סעיף פורטים המפרט את כל הפורטים שהוקצו לקונטיינר לצורך האזנה לחיבורים נכנסים.
בדוגמה זו, יציע היבנה 27017 ממופה למארח. הפלט שלמטה מציין כי תוכל לגשת למופע MongoDB בקונטיינר זה דרך localhost:27017 מהמארח.

אולי תרצה לראות את קובץ הלוג של הקונטיינר
mymongo
כדי לקבוע מה קרה במסד הנתונים/המופע של מונגו כאשר משהו השתבש עם זה. אם כן, הריץ את הפקודהdocker logs
, כך:sudo docker logs docker-container
. החלףdocker-container
בשם הקונטיינר שלך.

צרף את קונטיינר Docker MongoDB לקליפת Bash
הקמת קונטיינר Docker MongoDB עלתה לך כעת, אך כיצד ניתן לנהל אותו? עשה זאת על ידי הצרפת הקונטיינר Docker לקליפת Bash עם הפקודה docker exec
תחילה.
הצרפת הקונטיינר שלך לקליפת Bash היא חיונית מאחר והקונטיינר פועל כעת במצב מופרד (פועל ברקע). ואם הקונטיינר רץ ברקע, הקונטיינר לא יקבל שום קלט ולא יציג פלט.
הרץ את הפקודה docker exec
למטה כדי לצרף את הקונטיינר שלך (mymongo
) לקליפת Bash.
כאשר הפקודה מושלמת, הפקודה שלך תשתנה למשהו דומה לזה שמוצג למטה. המספר האלפאנומרי הייחודי (77782fa95314) הוא מזהה הקונטיינר.
זיהוי מזהה המיכלים חיוני כדי למנוע התנגשויות בשמות ולזהות באופן אפקטיבי מיכלים בין מארחים, לכן נסו שלא לשנות אותם.

כעת הריצו את הפקודה mongo
בלי ארגומנטים כדי להתחבר למסד הנתונים של MongoDB בתוך המיכל (mymongo). מסד הנתונים של MongoDB הוא המקום בו אתה מריץ את השאילתות/הפקודות שלך בmongo.
לאחר שתהיו במיכל, תוכלו להריץ כל פקודה בלי קידומת
sudo
מאחר ואתה כעת משתמש שורש בתוך המיכל. כל שינוי שתעשו במיכל לא ישפיע על מערכת המחשב המארחת שלך.
מתוך ההודעה המוצגת למטה, תוכל להבחין שאתה כעת במסד הנתונים של MongoDB.

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

יצירת משתמש מנהל במסד הנתונים של MongoDB
לאחר שהפעלת עבור שרת MongoDB בתוך מיכל Docker, אתה עכשיו תיצור משתמש מנהל במסד הנתונים של MongoDB. משתמש מנהל מאפשר לך להתחבר לשרת MongoDB ולנהל מסדי נתונים.
1. התחבר מחדש למסד הנתונים של MongoDB והרץ את הפקודה use
למעבר תחילה אל מסד הנתונים admin
. בכך תעניק למשתמש המנהל את ההרשאות הנכונות לניהול מסדי הנתונים.

העתק והדבק את הקוד הבא במפתח MongoDB כדי ליצור משתמש מנהל.
הקוד למטה משתמש בשיטת db.createUser()
כדי ליצור משתמש עם תפקידים מנהליים. שם המשתמש (user
) והסיסמה (pwd
) מוגדרים מראש ואפשר לשנות אותם לפי העדפתך.
אם הקוד עובד, תקבל הודעה כזו כמו שמופיע למטה במפתח MongoDB שלך.

3. הרץ את השאילתה quit()
למטה כדי לצאת ממסך ה-Shell של MongoDB.
4. לבסוף, הרץ את הפקודה mongo
הבאה כדי לבדוק את המשתמש המנהל שיצרת (ata
) על ידי התחברות לשרת MongoDB. הזן את הסיסמה של המשתמש המנהל כשיש לך הזמנה לכך.
כפי שאתה רואה למטה, שרת ה-MongoDB מדפיס את גרסת שרת ה-MongoDB אם התחברת בהצלחה לשרת.

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

יצירת מסד נתונים של MongoDB
ניהול מיכל MongoDB ב־Docker לא יהיה שלם מבלי ליצור מסד נתונים. תיצור מסד נתונים חדש שתאחסן בו נתונים דרך המסד של MongoDB.
1. מתוך מפגש אינטראקטיבי בתוך מיכל ה־Docker, הרץ את הפקודה show dbs
למטה כדי לרשום את כל המסדים בשרת שלך.
למטה, תוכל לראות מסד נתונים מנהל, מסד תצורה ומסד מקומי. מסדי הנתונים האלו נוצרים ברירת מחדל בכל שרת MongoDB.

2. לאחר מכן, הרץ את הפקודה use
למטה כדי ליצור מסד נתונים חדש. החלף <database_name>
בשם המסד שתבחר. אך לדוגמה עבור הדוגמה הזו, המסד נקרא linux
.
השאילתה
use
מעבירה את מסד הנתונים הנוכחי לאחד שתציין אם קיים. אם לא, השאילתהuse
תיצור מסד נתונים חדש ותעבור אליו באופן אוטומטי.

3. הריץ שוב את הפקודה show dbs
כפי שעשית קודם (שלב אחד) כדי לראות אם המסד החדש שיצרת קיים.
עדיין אינך רואה את מסד הנתונים החדש שנוצר (ב-Linux) ברשימה? MongoDB בונה את מסד הנתונים רק כאשר אתה שומר נתונים בו לפעם הראשונה. הנתונים יכולים להיות בצורת אוסף או אפילו מסמך.

4. עכשיו העתק/הדבק את הקוד לתוך קופסת השורה של MongoDB ולחץ Enter.
הקוד מטה יוצר אוסף חדש בשם linux_version
, אותו אתה יכול לשנות לשם המועדף עליך. האוסף מכיל נתונים בפורמט של מפות מפתח:ערך.
בפלט שלמטה, אתה רואה את האוסף linux_version
נוצר ומגיע עם מזהה עצם (ObjectID).

5. הרץ את הפקודה show collections
כדי לראות רשימת אוספים ולראות האם האוסף החדש linux_version
קיים.
בתמונה למטה, אתה רואה שיצרת את האוסף linux_version בהצלחה.

6. לבסוף, הפעל את הפקודה למטה כדי להציג ולאשר את הנתונים שהכנסת באוסף ה־linux_version
נכונים. השיטה pretty() מאפשרת לך להציג את הנתונים בפורמט שקריא לאדם.
אם אי פעם תשנה את הנתונים במסד הנתונים, השתמש בשיטת
Update()
.
ניתן לראות את הפלט למטה בפורמט שקריא הרבה יותר.

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

2. לאחר מכן, הרץ אחת מבין הפקודות docker stop
לעצירת מכונה MongoDB שרצה.
3. הרץ מחדש את הפקודה docker ps
כפי שעשית בצעד הקודם (שלב אחד) כדי לבדוק אם המכונה נסגרה.
כפי שניתן לראות למטה, המכונה אינה ברשימת המכונות הפועלות, מה שמציין שהצלחת לעצור בהצלחה את המכונה.

4. כעת הפעל אחת מהפקודות docker start
למטה אם החלטת לאתחל מחדש את התקופה.
5. לבסוף, הפעל מחדש את הפקודה docker ps
כדי לראות האם התקופה פועלת.
אולי אין לך יותר שימוש בתקופה. אם כן, עליך לעצור את התקופה תחילה ולהפעיל את הפקודה
rm
כדי להסיר תקופה, כמו כן:sudo docker container rm mongodb
. דומה לדוגמאות הקודמות, החלףmongodb
בשם התקופה או במזהה התקופה.
מסקנה
במדריך זה, למדת כיצד להפעיל ולנהל תקופת MongoDB באמצעות Docker על ידי יצירת משתמש מנהל ליצירת מסד נתונים ולאחסון נתונים בו. הבנת שניתן לעצור, לאתחל מחדש ולהסיר תקופות שאינך זקוק עוד להשאיר את התמונות של Docker שלך נקיות.
הפעלת וניהול MongoDB עם Docker הוא השלב הראשון לניצול של טכנולוגיית התקופה ולהפחתת העומס. למה לא להשתמש בשלב הראשון הזה כדי לחקור MongoDB יותר ולראות כיצד תקופת MongoDB של Docker יכולה לעזור בפרויקטים שלך?