PracticU

docker

בלי כתוביותעם כתוביות
PracticU › קורס לינוקס למתקדמים - הסמכה בינלאומית - Linux - Red Hat - RHCSA / RHCE › docker
מילון מושגים:
Docker - פלטפורמה להרצת אפליקציות בתוך קונטיינרים מבודדים וקלים, כדי שירוצו באופן אחיד בכל סביבה.
CentOS - הפצת Linux ארגונית חינמית שהתבססה על Red Hat Enterprise Linux ושימשה נפוצות בשרתים.
Dockerfile - קובץ טקסט עם הוראות לבניית Docker Image, המגדיר את הבסיס, הקבצים והפקודות שיירוצו.
Docker Image - תבנית לקריאה בלבד שמכילה אפליקציה ותלויותיה, וממנה מריצים קונטיינרים ב-Docker.
Ubuntu - הפצת Linux נפוצה וידידותית למשתמש, המשמשת בשרתים ובמחשבים אישיים.
MySQL - מערכת ניהול מסדי נתונים יחסיים בקוד פתוח, נפוצה מאוד באתרים וביישומי אינטרנט.
MongoDB - מסד נתונים מסוג NoSQL שמאחסן נתונים כמסמכים בפורמט דמוי JSON, בלי מבנה טבלאי קשיח.
SELinux - מנגנון אבטחה ב-Linux שאוכף מדיניות בקרת גישה מחמירה על תהליכים וקבצים.

docker
Docker הוא כלי לבנייה, לאריזה ולהרצה של קונטיינרים. בשיעור מוסבר מה הוא מאפשר לנהל, ואיך מתקינים אותו על RHEL 7 או CentOS 7 כדי לתרגל בבית.
מה Docker מאפשר
1. בנייה: בונים קונטיינרים לפי סקריפט בשם Dockerfile, שעליו ידובר בשיעורי ההמשך.
2. הורדה: מושכים קונטיינרים מוכנים מהאינטרנט, מ-Docker Hub. שם יצרני אפליקציות רבים מפרסמים אימג'ים מוכנים, למשל Ubuntu, MySQL, MongoDB, Tomcat, RabbitMQ ו-Apache.
3. ניהול: מקימים קונטיינרים, מנהלים את האימג'ים שלהם, ומפעילים ועוצרים אותם.
השלבים העיקריים
1. הכנת השרת: המכונה מוגדרת לעלות במצב טקסטואלי ולא גרפי, כלומר multi-user.target במקום graphical.target. היא מקבלת כרטיס רשת Bridged כדי שתהיה לה גישה לאינטרנט.
2. כיבוי הפיירוול: עוצרים את firewalld, מבטלים את הפעלתו ומסמנים אותו כ-mask. Docker משתמש ב-iptables להפניית תעבורה, ולכן firewalld צריך להיות מבוטל.
3. התקנה: yum install docker. מתקבלות שתי חבילות: Docker, וחבילת docker-selinux שמכילה את מדיניות ה-SELinux של Docker.
4. הפעלה: systemctl start docker.service. Docker יוצר בטבלת ה-iptables את השרשרת DOCKER ונוסף לשרשרת FORWARD. מפעילים גם systemctl enable כדי שהשירות יעלה באתחול.
5. משיכת אימג': בוחרים אימג' באתר Docker Hub, מעתיקים את פקודת ה-pull ומריצים אותה. Docker מוריד, פותח ומאמת את האימג'.
פקודות והגדרות
- docker images מציג את האימג'ים המותקנים: שם המאגר, הגרסה וה-ID.
- docker rmi <image-id> מוחק אימג'.
- docker run -i -t פותח קונטיינר אינטראקטיבי, ו-docker attach חוזר אליו.
- Ctrl+P ואחריו Ctrl+Q יוצאים מהקונטיינר בלי לעצור אותו.
- docker exec מריץ פקודה בתוך קונטיינר פעיל בלי להפריע לתהליך הראשי. בדוגמה הורץ df בתוך הקונטיינר.
- docker logs <name> מציג את הפלט האחרון שהקונטיינר ייצר.
- docker rm <name> מוחק קונטיינר שאינו פעיל.
טעויות נפוצות
יציאה רגילה מקונטיינר אינטראקטיבי עוצרת אותו. כדי לצאת בלי לעצור משתמשים ב-Ctrl+P ואחר כך Ctrl+Q.
לפני ההתקנה כדאי לוודא ש-iptables פועל. Docker דורש אותו להפניית התעבורה בין הקונטיינרים, ואם firewalld פועל במקביל הם מתנגשים.
בסיום השיעור יש לכם את הבסיס לעבודה עם אימג'ים וקונטיינרים.
לחץ כאן להורדת הורדת קבצי Script של לינוקס שהיו בסרטים
מילון מושגים:
דיסק - התקן לאחסון קבוע של נתונים, כמו כונן קשיח (HDD) או כונן מבוסס זיכרון מהיר (SSD).
תיקייה - מכל במערכת הקבצים שמשמש לארגון קבצים ותיקיות אחרות בתוך מבנה היררכי.
מחיצה - חלוקה לוגית של דיסק פיזי לאזורים נפרדים, שכל אחד מתפקד כאילו הוא כונן עצמאי.
זיכרון - רכיב מהיר ונדיף שבו המחשב שומר נתונים ותוכניות בזמן ריצתם. תוכנו נמחק עם כיבוי המחשב.
דומיין - תחום ניהולי משותף של מחשבים ומשתמשים ברשת ארגונית, המנוהל מרכזית. גם שם ייחודי של אתר באינטרנט.
אימות - תהליך שמוודא שהמשתמש או המערכת הם מי שהם טוענים שהם, בדרך כלל באמצעות סיסמה, קוד או תעודה.
Active Directory - שירות מדריך של מיקרוסופט לניהול מרכזי של משתמשים, מחשבים והרשאות ברשת ארגונית מבוססת דומיין.
GPO - אובייקט מדיניות קבוצתית ב-Active Directory, שמכיל הגדרות ומדיניות המוחלות על משתמשים ומחשבים.


מבנה ושמות דיסקים ומחיצות בלינוקס:


(Sda (disk0): זה הדיסק הפיזי הראשון (SATA DISK)

(Sda1,Sda2 (Partitions in disk): אלו הן המחיצות בתוך הדיסק הפיזי הראשון.

(Sdb (disk1): זה הדיסק הפיזי השני כמו בוינדוס Disk1

(Sdb1,Sdb2 (Partitions in disk): אלו הן המחיצות בתוך הדיסק הפיזי השני.

מחיצת השורש הראשונה:

וינדוס: C

לינוקס: /

מחיצות נוספות:

וינדוס: D: / E:

לינוקס: /data /example כמו תיקיות.

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

מטרת צירוף לינוקס לדומיין הינה לאימות משתמשים מתוך Active Directory בלבד ואין GPO  ללינוקס דרך AD.


הוכן ע"י התלמיד המצטיין: אברהים אבו שיכה

פרקי ההרצאה: docker

  1. 00:00

    מבוא: מה זה דוקר ואיך הוא עוזר בקונטיינרים

  2. 01:37

    Docker Hub: אימג'ים מוכנים להורדה

  3. 03:48

    התקנת Docker מתוך חבילת RPM

  4. 05:02

    מעבר למצב טקסטואלי לחיסכון במשאבים

  5. 08:17

    ביטול Firewalld לפני התקנת Docker

  6. 09:21

    התקנת Docker עם yum והחבילות שלו

  7. 10:18

    מצב כללי iptables לפני הפעלת Docker

  8. 11:25

    צ'יינים חדשים של iptables שנוצרו על ידי Docker

תמלול ההרצאה: docker

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

  1. 00:02

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

  2. 00:26

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

  3. 00:50

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

  4. 01:10

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

  5. 01:37

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

  6. 01:53

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

  7. 02:19

    את ה-Java Web Server Tomcat, ראביט MQ, אפאצ'י. אנחנו רואים הרבה מאוד רכיבים שכל מה שצריך לעשות כדי להתחיל להשתמש בהם בתצורת קונטיינר, זה פשוט להריץ אותם ולהוריד אותם.

  8. 02:37

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

  9. 03:00

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

  10. 03:25

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

  11. 03:40

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

  12. 04:03

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

  13. 04:25

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

  14. 04:45

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

  15. 04:57

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

  16. 05:14

    זה כמובן בזבוז משאבים מיותר שעדיף להימנע ממנו לכן עכשיו כאשר המערכת תעלה אנחנו גם נחזור על הכלים של סיסטם D וגם נמנע את בזבוז המשאבים הזה ונגרום למכונה הזאתי לעלות במצב טקסטואלי בשפה של גרסה 6 וקודמיה היה מדובר ב-Init Level 3 ובשפה של גרסה 7 מדובר ב-Multi-User Target.

  17. 05:44

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

  18. 06:12

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

  19. 06:40

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

  20. 07:20

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

  21. 07:48

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

  22. 08:01

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

  23. 08:26

    כמו כן אני הולך לעשות לו disable שלא יעלה בבוט הבא של המערכת וגם ליתר ביטחון אני אריץ את הפקודה mask כדי שבטעות מישהו לא יפעיל את הסרוויס הזה על המערכת הדוקר משתמש במנגנון IP tables כדי לעשות nut ו-forward לפורטים מסוימים ולכן חשוב שיהיה מבוטל כרגע אני בודק אם ממשק הים עובד תקין כמובן שיכלתי גם להגדיר

  24. 09:00

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

  25. 09:34

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

  26. 10:06

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

  27. 10:22

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

  28. 11:02

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

  29. 11:35

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

  30. 12:06

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

  31. 12:25

    קודם כל, תזכרו שה-IP טייבלס או המנגנון של ה-Firewall-D חייבים להיות למעלה כדי לאפשר לדוקר להשתלט על מנגנון ה-IP טייבלס כדי שהוא יוכל להפנות את

לקורס המלא: קורס לינוקס מתקדם אונליין

ההרצאה הקודמת: container

ההרצאה הבאה: הסבר על PAM - חלק 1

הרצאות קשורות מקורסים אחרים

  • התקנה של Docker
  • קונטיינר בענן - Cloud Run - התקנת Docker על וונדוס 11

קורסים נוספים במסלול

  • קורס AWS - ניהול מכונה וירטואלית בענן
  • קורס Terraform - DevOps - Azure & AWS
  • קורס קוברנטיקס - Kubernetes
  • קורס Docker - עם Swarm Cluster
  • קורס DevOps - Ansible
  • קורס PowerShell