مفهوم شبکه در docker

مبحث شبکه در docker بسیار گستردس که معمولا برای کارهای خیلی حرفه ای استفاده می‌‌شه

اینجا صرفا در مورد یکسری موارد عمومی در حد آشنایی با شبکه در داکر صحبت می‌کنیم(خودمم هم در همین حد نیاز دیدم یاد بگیرم)

وقتی DOCKER یه کانتینر رو اجرا می‌کنه. بصورت پیش فرض یه شبکه BRIDGE میسازه و اون رو NAT میکنه.

منظورم از شبکه BRIDGE یعنی یه کارت شبکه مجازی میسازه که بتونه از هاست(سیستم عامل اصلی که داکر روش نصب شده) با container در ارتباط باشه. از طرفی nat هم انجام میده تا کانتینر اینترنت داشته باشه.

این کار بصورت پیش فرض همیشه انجام میشه. مگر اینکه خودمون بخوایم تغییراتی داشته باشیم( مثلا برای DOCKER SWARM نیاز داریم که چند تا کانتینر توی یک شبکه باشن بعدا در مورد SWARM هم صحبت می‌کنیم)

کامند اصلی ای که برای مبحث شبکه استفاده میشه که میتونیم با help-- تمام اپشن هاشو ببینیم.

docker network --help

مثلا دستور docker network ls که لیست شبکه های داکر رو بهمون می‌ده(خروجی سیستم من به این صورته)

اگر دقت کنید چندین شبکه bridge داریم که به ازای هر کانتینر ساخته شده

با شبکه های null و host کاری نداریم شبکه overlay هم برای swarme

هم چنین توی خروجی اسم شبکه ها رو هم میبینیم اگر بخواهیم اطلاعات جزیی تری از یک شبکه داشته باشیم از دستور پایین استفاده میکنیم(docker_gwbridge اسم یکی از شبکه هاییه که بالا دیدیم)

docker network inspect docker_gwbridge

**اگر بخوایم ریز مشخصات یک container رو ببینیم از این دستور استفاده می‌کنیم:

docker inspect container_name

معمولا توی داکر کسی با ip کاری نداره و با پورت ها کار می‌کنن

یعنی میایم یه پورتی از کانتینر رو مپ میکنیم از اون به بعد خیلی ساده میتونیم از سیستم هاست(که داکر روش نصبه) با اون پورتی که تعریف کردیم کار کنیم.

توی همین دستور بالا که میزنیم یه قسمتی داره به اسم ports که بهمون نشون میده چه پورتی رو در اختیارمون گذاشته بعد میتونیم اون پورت رو این مدلی مپ کنیم:

docker run -d -v data:/var/data -p 28321:27001 ubuntu

نکته:۲۷۰۰۱ همون پورتی هست که توی قسمت پورت نشون میداد در اختیارمون گذاشته ۲۸۳۲۱ هم که پورت دلخواهمون

*** اگر موضوع هنوز براتون گنگه این قسمت رو بخونید: تصور کنید یه container داریم با ip=172.16.0.12 که روش وب سرور داریم خب پس روی پورت 80 بهمون جواب میده ولی روی چه هاستی؟ روی ۱۷۲.۱۶.۰.۱۲ که ip کانتینر هستش اگر پورت ۸۰۸۰ رو پورت کنیم روی ۸۰ خیلی راحت روی localhost سیستمی که روش داکر نصب شده میتونیم بهش دسترسی داشته باشیم.

مجموعه این تحقیقات و ازمایش هایی که در ادامه مستند می‌کنم در شرکت پردازش هوشمند ترگمان مجری سامانه های ترجمه ماشینی ترگمان و ترجمیار انجام شده است.