How To Install Docker Compose on Ubuntu 18.04

Docker Compose - Techblg.co.il

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

בדיוק לשם כך פיתחה קהילת הדוקר כלי ניהול פופלרי הנקרא Fig המאפשר שימוש בקובץ yaml בודד לצורך ניהול יעיל של כל הקונטיינרים והקונפיגורציות שלהם. הפתרון נהיה כל כך פופולרי בקרב המשתמשים עד כדי כך שהוביל את הקהילה לפתח את Docker Compose המבוסס על המקור של Fig. השימוש ב Docker Compose מפשט את התהליכים הנחוצים לצורך הקמת סביבה מרובת קונטיינרים ואפליקציות כלל הקמה, אתחולף כיבוי וכן קישוריות פנימיות בין קונטיינרים.

במדריך זה אסביר כיצד ניתן להתקין את Docker Compose על גבי שרת ubuntu 18.

 

שלב א – התקנת Docker על גבי Ubuntu

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

תחילה נתקין את התלויות הנחוצות להתקנה ולתפקוד התקין של Docker:

וכעת נוסיף את מפתח ה GPG המאמת את המאגר שזה עתה הוספנו:

עכשיו, אחרי שהתקנו את התלויות והוספנו את מפתח האימות של המאגר, נוסיף את המאגר עצמו לרשימת המאגרים של המערכת:

ונבצע עדכון לרשימת החבילות:

אם לא נתקלתם בשגיאות עד כה (לא הייתם אמורים אם פעלתם בדיוק לפי ההוראות) אפשר לעבור לשלב האחרון והוא התקנת ה Docker עצמו על פי הפקודה הבאה::

 

שלב ב- התקנת Docker Compose:

כעת נעבור להתקנת ה Docker Compose. תחילה, גשו לכתובת הבאה ואתרו את הגרסה האחרונה של Docker Compose (בעת כתיבת המדריך הגרסה האחרונה היא 1.23.2):
Docker Compose Version

 

כעת כתבו את הפקודה הבאה:

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

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

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

העתיקו פנימה את הטקסט הבא:

כאשר:

  • PUID מציין את ה ID של המשתמש שישמש להרצת האפליקציות.
  • PGID מציין את ה ID של קבוצת ה docker.

את שני הנתונים האלה ניתן לקבל על ידי הרצת הפקודה:

בנוסף יש את:

  • TZ המציין את איזור הזמן, לדוגמה Asia/Jerusalem.
  • USERDIR הנתיב לתיקיית הבית של המשתמש הנוכחי.
  • MYSQL_ROOT_PASSWORD – ישמש עבור הגדרת סיסמת root עבור MySQL/MariaDB וכן ל phpMyadmin.

את ההפניה למשתנים אלה נוכל לעשות על ידי השימוש ב {} בקובץ ההגדרות של docker compose.

 

תיקיות ה Docler וההרשאות:

לצורך פשטות ההדגמה יצרתי תיקייה בשם docker תחת תיקיית הבית שלי על ידי הפקודה:

כעת נעניק לתיקיה את ההרשאות המתאימות וזאת על מנת למנוע בעיית הרשאות שעלולה לצוץ בהמשך, לצורך כך כתבו את הפקודות הבאות ברצף"

 

התחלת עבודה עם Docker Compose:

סוף סוף אפשר להתחיל להגדיר קונטיינרים, ונעשה זאת על ידי יצירת קובץ yaml באמצעות הפקודה הבאה:

כעת הדביקו פנימה את הטקסט הבא:

השימוש ב version מורה ל docker compose באיזה גרסאת תחביר להשתמש.
בכל שלב ניתן ללחוץ על ctrl+x >>y >>enter על מנת לשמור את הקובץ ולצאת מהעורך.

 

טעינה ואתחול קונטיינרים באמצעות Docker Compose:

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

כאשר השימוש ה -d מבצע את הריצה ברקע ומונע הצגת לוגים בזמן הריצה.

 

צפיה ברשימת הקונטיינרים:

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

הפלט שתקבלו יראה כך:

 

Docker containers - מתוך הבלוג של תומר קליין

 

לוגים:

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

הפעלה / כיבוי של קונטיינרים באמצעות Docker Compose:

על מנת לעצור קונטיינר ניתן להשתמש בפקודה:

  • החליפו את CONTAINER-NAME בשם הקונטיינר אותו תרצו לעצור.
  • החליפו את stop ב start על מנת להפעיל קונטיינר.

על מנת לעצור קונטיינרים ולהסיר את כל המשאבים שלהם כמו רשתות, ווליומים ועוד ניתן להשתמש בקובץ ה docker-compose.yaml בצורה הבאה:

ניקוי משאבים שאינם בשימוש:

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

 

הקמת Container ניהול:

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

והדביקו פנימה את הטקסט הבא:

ככה שבתוספת שתי השורות המקוריות בקובץ הוא אמור להיראות כך:

שמרו את הקובץ וצאו מהעורך.
כעת נתקין את הקונטיינר עצמו על ידי שימוש בפקודת docker-compose בצורה הבאה:

במדריך הבא תוכלו לקרוא אודות ה Portainer וכיצד להשתמש בו.

בהצלחה,

3 Trackbacks / Pingbacks

  1. Duplicati - Free backup software to store encrypted backups - Tech Blog
  2. Apache Guacamole - Access your computers from anywhere - Tech Blog
  3. Traccar - Track your devices - Tech Blog

Leave a Reply

כתובת האימייל שלך לא תפורסם


*