🐳 درک شبکه پل پیش فرض Docker (با نمودار)

اگر تا به حال یک ظرف docker را چرخانید و تعجب کرده اید چگونه این موضوع با اینترنت صحبت می کند؟، شما تنها نیستید.
Docker بی سر و صدا دنیای مجازی ریز و درشتی را در پشت صحنه ایجاد می کند – با پل ها ، کابل های اترنت جعلی (VETH) و میزهای مسیریابی. در این پست ، ما طی خواهیم کرد چگونه پیش فرض Docker bridge
شبکه در واقع کار می کند، با استفاده از a نمونه مبتنی بر نموداربشر آماده؟ بیا بریم! 👇
🔍 بررسی اجمالی سریع
وقتی دویدید:
docker run -d nginx
Docker ظرف خود را در شبکه ای به نام قرار می دهد bridge
(مگر اینکه در غیر این صورت آن را بگویید). این bridge
است سوئیچ مجازی داخل میزبان خود
ظرف شما:
- خودش را می گیرد رابط اترنت مجازی
- از طریق پل با سایر ظروف مذاکره می کند
- از طریق دنیای خارج می رسد مسیریابی
بیایید این را از نظر بصری تجزیه کنیم.
📊 Diagram Walkthrough
یادداشت: این نمودار سه ظروف را نشان می دهد (
busybox
باnginx
باbusybox-sec
) متصل به شبکه پیش فرض Bridge Docker در میزبان.
در اینجا چه خبر است ، قدم به قدم:
🐳 1. هر ظرف یک جفت مجازی اترنت دریافت می کند
- هر ظرف دارای
eth0
رابط در داخل. - این رابط در واقع یک انتهای a است جفت اترنت مجازی (
veth
). - انتهای دیگر آن جفت به پل داکر وصل شده است (
docker0
) در میزبان.
مثل سیم با دو انتها به آن فکر کنید:
- یک انتهای داخل ظرف (
eth0
) - یک انتهای داخل میزبان (
vethXYZ
) ، به سوئیچ مجازی وصل شده است
🧱 2. پل داکر (docker0
) مانند روتر عمل می کند
بلوک سبز برچسب Docker 0
شبکه پل است:
- تمام کانتینر را به هم متصل می کند
veth
رابط - این ترافیک بین ظروف را هدایت می کند
- من خیانت ترافیک برون مرزی برای عبور از میزبان
eth0
رابط
به زبان ساده تر:
- اگر
nginx
پنگbusybox
، بسته ها از طریقdocker0
- اگر
nginx
دسترسی به Google ، Docker IP منبع را به IP میزبان بازنویسی می کند
🌐 3. ترافیک برون مرزی به اینترنت جریان می یابد
- یک کانتینر درخواستی را به
www
- آن بسته از طریق آن سفر می کند
veth
→docker0
→ میزبانeth0
→ خانه شما روتر - روتر بسته را به اینترنت عمومی منتقل می کند
Docker دستگیره منبع (Snat) ، بنابراین از دنیای خارج ، به نظر می رسد میزبان درخواست را انجام داد، نه ظرف.
📌 مزایای اصلی شبکه پل
- ✅ استفاده آسان: پیش فرض برای اکثر ظروف
- ✅ جدا شده: ظروف دارای IP های خصوصی هستند
- communication ارتباطات بین کانتینر پشتیبانی می شود
- ✅ دسترسی به اینترنت از طریق NAT
🚫 اما محدودیت هایی وجود دارد
- ❌ بدون وضوح DNS به طور پیش فرض (از شبکه های سفارشی برای آن استفاده کنید)
- ❌ برای ارتباطات بین میزبان ایده آل نیست
- ❌ برخی از ژیمناستیک نقشه برداری بندر مورد نیاز (
-p 8080:80
)
🧠 برای یک نکته
اگر می خواهید کشف خدمات نامگذاری شده (به عنوان مثال ، تماس بگیرید db:5432
به جای IP) ، از a استفاده کنید شبکه پل سفارشی:
docker network create mynet
docker run -d --name db --network mynet postgres
docker run -d --network mynet myapp
در این حالت ، myapp
می تواند با db
با استفاده از آن نام کانتینربشر 🚀
thoughts افکار نهایی
شبکه Bridge معجزه کمی آرام Docker است – ساده ، قدرتمند و در دید ساده پنهان است.
این گفته ، با رشد معماری شما ، می خواهید کشف کنید:
- شبکه های پل سفارشی برای کشف خدمات
- شبکه میزبان برای عملکرد
- شبکه های روکش برای تنظیمات چند میزبان (پست بعدی!)
آیا این کمک کرد تا امور واضح تر شود؟
اگر چنین است ، مرا دنبال کنید تا Docker و DevOps بیشتر از آن استفاده کنید!
بیایید ظروف را از بین ببریم-یک نمودار در یک زمان.
✍ zaheetdev