דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. חיבור למסד נתונים בדוקר 2

חיבור למסד נתונים בדוקר 2

מתוזמן נעוץ נעול הועבר תכנות
17 פוסטים 4 כותבים 296 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • שואףש מנותק
    שואףש מנותק
    שואף
    השיב ליוסף בן שמעון ב נערך לאחרונה על ידי
    #5

    @יוסף-בן-שמעון אמר בחיבור למסד נתונים בדוקר 2:

    @שואף אז בעצם אתה רוצה להתחבר מהרשת המארחת לרשת הפנימית של המיכל, אם כן expose פשוט אמור לפתור את זה.

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

    ליצירת קשר: admin@i-call.me

    הידד! גישה למייל גם בלי מחשב ואינטרנט!

    A תגובה 1 תגובה אחרונה
    0
    • A מנותק
      A מנותק
      aaron
      השיב לשואף ב נערך לאחרונה על ידי
      #6

      @שואף אמר בחיבור למסד נתונים בדוקר 2:

      @יוסף-בן-שמעון אמר בחיבור למסד נתונים בדוקר 2:

      @שואף אז בעצם אתה רוצה להתחבר מהרשת המארחת לרשת הפנימית של המיכל, אם כן expose פשוט אמור לפתור את זה.

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

      אם אתה עושה expose, אז אתה מתחבר לlocalhost.

      aaron.tchumim@gmail.com
      Hetzner - שרתים וירטואליים ופיזיים במחירים מעולים (קישור שותפים)

      ווצאפ API - תיעוד שירות API לא רשמי.

      שואףש 2 תגובות תגובה אחרונה
      1
      • שואףש מנותק
        שואףש מנותק
        שואף
        השיב לaaron ב נערך לאחרונה על ידי
        #7

        @aaron

        
        root@docker:~# mysql -u root -p54fghjghjk44RkjJHkhgv3798 -h localhost -P 3306
        mysql: [Warning] Using a password on the command line interface can be insecure.
        ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
        

        ליצירת קשר: admin@i-call.me

        הידד! גישה למייל גם בלי מחשב ואינטרנט!

        י תגובה 1 תגובה אחרונה
        0
        • שואףש מנותק
          שואףש מנותק
          שואף
          השיב לaaron ב נערך לאחרונה על ידי
          #8

          @aaron @יוסף-בן-שמעון אני מדבר על אפליקציה במצב HOST ומסד נתונים במצב BRIDGE. ואז השאלה איך לגשת מהאפליקציה לנתונים בלי להשתמש בכתובת אייפי החמקמקה.
          ברור שאם אגדיר המסד נתונים במצב HOST אוכל לגשת עם LOCALHOST, אבל אני מנסה להמנע מלחשוף שירותים שאינם נחוצים (או שאולי זה לא כזה נורא ואפשר לוותר על הזהירות הזו?)

          ליצירת קשר: admin@i-call.me

          הידד! גישה למייל גם בלי מחשב ואינטרנט!

          תגובה 1 תגובה אחרונה
          0
          • י מנותק
            י מנותק
            יוסף בן שמעון
            השיב לשואף ב נערך לאחרונה על ידי יוסף בן שמעון
            #9

            @שואף אמר בחיבור למסד נתונים בדוקר 2:

            @aaron

            
            root@docker:~# mysql -u root -p54fghjghjk44RkjJHkhgv3798 -h localhost -P 3306
            mysql: [Warning] Using a password on the command line interface can be insecure.
            ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
            

            כלומר - אותה הפקודה בדיוק מאותה המכונה, עם אייפי עובדת ועם לוקאלהוסט לא עובדת?
            אחרי שערכת את הדוקר קומפוז עשית DOWN ו UP?

            שואףש תגובה 1 תגובה אחרונה
            2
            • שואףש מנותק
              שואףש מנותק
              שואף
              השיב ליוסף בן שמעון ב נערך לאחרונה על ידי שואף
              #10

              @יוסף-בן-שמעון כן וכן.
              במילים אחרות, אם אני מפעיל דוקר של MYQSL במצב BRIDGE ועושה EXPOSE לפורט 3306, אני לא מצליח להתחבר אליו מהשרת הHOST

              version: '3.1'
              
              services:
                db:
                  image: mariadb:10.5
                  container_name: testdb
                  network_mode: bridge
                  expose:
                    - 3306
                  environment:
                    MYSQL_ROOT_PASSWORD: 54fghjghjk44RkjJHkhgv3798
              

              הצורה היחידה שאני מצליח להתחבר זה לעשות

              docker inspect testdb  | grep IPAddress
              

              שמחזיר לי אייפי "172.17.0.2" ואז אני יכול להתחבר כך

              mysql -u root -p54fghjghjk44RkjJHkhgv3798 -h "172.17.0.2"
              

              ליצירת קשר: admin@i-call.me

              הידד! גישה למייל גם בלי מחשב ואינטרנט!

              רפאלר תגובה 1 תגובה אחרונה
              0
              • A מנותק
                A מנותק
                aaron
                כתב ב נערך לאחרונה על ידי
                #11

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

                https://github.com/docker/compose/issues/3211 אולי זה יתן כיוון

                aaron.tchumim@gmail.com
                Hetzner - שרתים וירטואליים ופיזיים במחירים מעולים (קישור שותפים)

                ווצאפ API - תיעוד שירות API לא רשמי.

                שואףש תגובה 1 תגובה אחרונה
                1
                • שואףש מנותק
                  שואףש מנותק
                  שואף
                  השיב לaaron ב נערך לאחרונה על ידי
                  #12

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

                  ליצירת קשר: admin@i-call.me

                  הידד! גישה למייל גם בלי מחשב ואינטרנט!

                  A תגובה 1 תגובה אחרונה
                  0
                  • A מנותק
                    A מנותק
                    aaron
                    השיב לשואף ב נערך לאחרונה על ידי
                    #13

                    @שואף
                    גישה נורמלית זה אומר expose. זה עובד ועובד מעולה.
                    לך זה לא עבד כי ניסת להתחבר לסוקט ולא לפורט!

                    aaron.tchumim@gmail.com
                    Hetzner - שרתים וירטואליים ופיזיים במחירים מעולים (קישור שותפים)

                    ווצאפ API - תיעוד שירות API לא רשמי.

                    שואףש תגובה 1 תגובה אחרונה
                    2
                    • שואףש מנותק
                      שואףש מנותק
                      שואף
                      השיב לaaron ב נערך לאחרונה על ידי
                      #14

                      @aaron לא מבין מה שאתה אומר.
                      אני רוצה להתחבר לפורט, ולא מצאתי איך, חוץ מלאתר את כתובת האייפי ואת זה אני רוצה למנוע.
                      אבל להתחבר ל127.0.0.1 זה לא נותן בשום אופן.
                      אתה מבין את הבעייה?

                      ליצירת קשר: admin@i-call.me

                      הידד! גישה למייל גם בלי מחשב ואינטרנט!

                      תגובה 1 תגובה אחרונה
                      0
                      • רפאלר מנותק
                        רפאלר מנותק
                        רפאל
                        השיב לשואף ב נערך לאחרונה על ידי רפאל
                        #15

                        העובדה שיש לך אפליקציה נוספת שמשתמשת בNetwork של הHost הינה חסרת חשיבות, השאלה שלך היא כיצד ניתן לגשת לקונטיינר (bridge network mode) מבחוץ (הHost המארח).

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

                        התהליך מתבצע באמצעות מיפוי פורט X בקונטיינר לפורט Y בHost.

                        להלן מספר דוגמאות מתוך הדוקומנטציה:

                        פקודה תיאור
                        docker run -p 8080:80 מפה את פורט 80 בקונטיינר לפורט 8080 בHost
                        docker run -p 192.168.1.100:8080:80 מפה את פורט 80 TCP בקונטיינר לפורט 8080 בHost עבור חיבורים לHost באמצעות האייפיי 192.168.1.100
                        docker run -p 8080:80/tcp -p 8080:80/udp מפה את פורט TCP-80 בקונטיינר לפורט TCP-8080 בHost ואת פורט UDP-80 בקונטיינר לפורט 8080-UDP בHost

                        אם המיפוי של המסד נתונים יתבצע באופן דלהלן "3306:3306", המסד יהיה זמין בפורט 3306 של הlocalhost.

                        
                        services:
                          db:
                            image: mariadb:10.5
                            environment:
                              MYSQL_ROOT_PASSWORD: 54fghjghjk44RkjJHkhgv3798
                            ports:
                              - "3306:3306"
                        
                        שואףש תגובה 1 תגובה אחרונה
                        5
                        • שואףש מנותק
                          שואףש מנותק
                          שואף
                          השיב לרפאל ב נערך לאחרונה על ידי
                          #16

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

                          יישר כוח גדול!!!

                          ליצירת קשר: admin@i-call.me

                          הידד! גישה למייל גם בלי מחשב ואינטרנט!

                          רפאלר תגובה 1 תגובה אחרונה
                          1
                          • רפאלר מנותק
                            רפאלר מנותק
                            רפאל
                            השיב לשואף ב נערך לאחרונה על ידי רפאל
                            #17

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

                            תגובה 1 תגובה אחרונה
                            2

                            בא תתחבר לדף היומי!
                            • התחברות

                            • אין לך חשבון עדיין? הרשמה

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