מציאת שירותים לפי שם (DNS)
בשיעור הקודם ראינו שקונטיינרים על אותה רשת פרטית יכולים להגיע זה לזה. עכשיו נראה איך הם מוצאים זה את זה בפועל: לפי שם, דרך ה-DNS המובנה של Docker. ה-DNS מתרגם שם של קונטיינר לכתובת ה-IP העדכנית שלו — וכיוון שה-IP משתנה בין הפעלות אבל השם יציב, אף פעם לא מקבעים IP בקוד. נחווט אפליקציה מרובת-שירותים (
רשת Docker היא כמו אינטרקום במשרד: כדי לקרוא לעמית/ה את/ה אומר/ת את השם שלו/ה, בלי לשנן מספרי טלפון (כתובות IP) שמשתנים מדי פעם. ו'localhost' הוא תמיד 'אני עצמי' — אז כדי לקרוא למישהו אחר חייבים להגיד את שמו.
- מציאת שירותים
- המנגנון שבו קונטיינר מוצא שירות אחר על אותה רשת לפי שם במקום לפי כתובת IP. ב-Docker זה נעשה דרך ה-DNS הפנימי, שמתרגם שם קונטיינר לכתובת העדכנית שלו.
- DNS לפי שם
- השירות הפנימי של Docker שמתרגם שם של קונטיינר לכתובת ה-IP העדכנית שלו, כך שאפשר לפנות אליו בשם יציב במקום ב-IP שעלול להשתנות.
- מלכודת ה-localhost
- לכל קונטיינר יש localhost משלו, ולכן פנייה אל localhost מתוך קונטיינר אחד מגיעה אליו עצמו ולא לקונטיינר אחר — צריך לפנות בשם הקונטיינר השני.