אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
ראשי » מדריכים » docker » עבודה עם docker compose

עבודה עם docker compose

רן בר-זיק נובמבר 18, 2018 7:47 am 6 תגובות

אם אנו רוצים להפעיל כמה וכמה קונטיינרים בו זמנית לאפליקציות יותר מורכבות – docke

המאמר הקודם על דוקרDocker – יצירת קובץ הגדרות – image
המאמר הבא על דוקרוורדפרס על docker
כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

במאמרים הקודמים הסברנו על עבודה עם דוקר. ה-תשתית בה"א הידיעה בכל מה שקשור לווב (ובכלל). עם דוקר, למי שלא זוכר, אני יכול לייצר איזו תשתית שבא לי מכל מחשב בלי להתאמץ. הרסתי והחרבתי? אין בעיה. מרימים שוב.

הבעיה מתחילה כאשר אני צריך כמה קונטיינרים בו זמנית. למה צריך את זה? למשל אם אני רוצה להרים אתר וורדפרס שצריך גם שרת PHP וגם שרת שיש בו MySQL. או למשל אני צריך לבחון קובץ SQL שקיבלתי. אני צריך PHPMyAdmin שהוא ממשק ניהול ל-MySQL וכמובן שרת שיש בו MYSQL. מה אני עושה?

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

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

בגדול, יוצרים קובץ בשם docker-compose.yml ומציבים אותו בתיקיה כלשהי (לא משנה איזו תיקיה). הקובץ נראה כך:

version: '2'
# כאן יש לנו את כל הקונטיינרים
services:
# קונטיינר של מסד נתונים
  db:
    image: mysql
    environment:
      # Environment variable
      MYSQL_ROOT_PASSWORD: password
    ports:
      - "3306:3306"
# PHPMyAdmin container
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    depends_on:
      - db
    ports:
      - "8080:80"

הקובץ הוא די פשוט. הגרסה היא הגרסה של דוקר. בדרך כלל זה 2 או 3 (אלא אם כן אתם צריכים משהו מורכב). ואז מגיע services שבו אנחנו מפרטים את כל הקונטיינרים שאנחנו צריכים. במקרה הזה שניים. הראשון הוא db. שם אנו מפרטים את שם ה-image שזהה ל-image הרשמי (יכול להיות גם image שיצרנו כפי שהסברנו במאמר הזה). ואת משתני הסביבה שהקונטיינר צריך. במקרה הזה, כיוון שכאשר מרימים את הקונטיינר צריך לכתוב:

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql

אנחנו צריכים להוסיף MYSQL_ROOT_PASSWORD ואת הערך שאנחנו רוצים לתת לו.

אם יש לנו תלויות, אנו מוסיפים אותן ל-depends_on. במקרה הזה, ה-phpmyadmin תלוי ב-db כי בלעדיו אין לו זכות קיום.

אחרי שסיימנו ליצור את קובץ ה-compose, אנו נפתח את הקונסולה של דוקר, שעליה למדנו במאמרים הקודמים ונכתוב docker-compose up

קונסולה של דוקר עם compose up
קונסולה של דוקר עם compose up

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

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

ועוד הערה: אל תשתמשו בקובץ שאנחנו מסבירים עליו פה לסביבת פרודקשן כמובן. שם משתמש root וסיסמה password זה לא רעיון טוב לשרת שפתוח לרשת החיצונית.
כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.
המדריך על דוקר
docker

6 תגובות

  1. דרור הגב נובמבר 18, 2018 בשעה 10:27 am

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

  2. חננאל הגב נובמבר 18, 2018 בשעה 5:38 pm

    המלצה שלי שכאשר עושים docker-compose up להוסיף את הפלאג -d על מנת להימנע מדפסות דיבאג מיותרות והתהליך ירוץ ברקע

  3. נ הגב דצמבר 30, 2018 בשעה 1:42 pm

    docker compose זה באמת אחלה דבר. רק שככלל, התעשיה פחות או יותר בחרה בקוברנקיס (AKA k8s). כל שירותי העננים הגדולים נותנים שרות K8S. לכן, למרות שזה יותר מורכב, כדאי לשקול לעבוד בK8S כדי להנות מהשירות הזה.

  4. יונתן הגב ינואר 12, 2020 בשעה 10:28 pm

    תודה רבה על המדריך, עזר מאוד!!!

  5. משתמש אנונימי (לא מזוהה) הגב ינואר 26, 2021 בשעה 3:08 pm

    האם db ו phpmyadmin שכתוב בקובץ הם סתם alias והייתי יכול לכתוב koko ו lolo ??

  6. N הגב יוני 22, 2022 בשעה 7:15 pm

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

השארת תגובה

ביטול

ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • טייפסקריפט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

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

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

    הפרויקטים שלי בגיטהאב

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

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

גלילה לראש העמוד