برنامه نویسی

شبکه های Docker چیست؟ – جامعه dev

Docker Networks بخش مهمی از کانتینر شدن است. در این مقاله ، ما در مورد شبکه های Docker صحبت خواهیم کرد و چرا آنها اهمیت دارند. من سعی می کنم از کلمات ساده و جملات کوتاه استفاده کنم ، بنابراین خواندن آن آسان است. این راهنما برای مبتدیانی است که می خواهند در مورد شبکه های کانتینر در Docker بیاموزند.

شبکه های Docker اجازه می دهند ظروف با یکدیگر صحبت کنند. آنها همچنین به ظروف اجازه می دهند با رایانه میزبان صحبت کنند. هنگامی که با بسیاری از ظروف کار می کنید ، شبکه ها به شما کمک می کنند تا آنها را بهتر مدیریت کنید. حتی می توانید ترافیک بین ظروف را برای امنیت اضافی جدا کنید. در این مقاله ، جزئیات بسیاری را در مورد شبکه های Docker پوشش خواهم داد و برخی از دستورات اساسی را نشان می دهم.

آشنایی با شبکه های داکر

Docker ابزاری است که به توسعه دهندگان کمک می کند تا برنامه ها را در ظروف ایجاد ، استقرار و اجرا کنند. ظروف مانند محیط های کوچک و جدا شده هستند. آنها کد شما را اجرا می کنند و همه چیز لازم را برای اجرای آن دارند. اما برای بسیاری از برنامه ها ، این ظروف باید با یکدیگر تعامل داشته باشند. این جایی است که شبکه های Docker وارد می شوند. آنها امکان برقراری ارتباط بین ظروف و بین ظروف و جهان خارج را فراهم می کنند.

بسیاری از مردم می پرسند ، “شبکه های Docker چیست و چرا لازم است؟” شما می توانید اطلاعات بیشتری در مورد این موضوع در این مقاله مفید در مورد شبکه های Docker و چرا آنها ضروری بخوانید. این منبع توضیح می دهد که چرا شبکه ها بخش اصلی کانتینر سازی هستند. این نشان می دهد که بدون شبکه ، ظروف نمی توانند داده یا خدمات را به راحتی به اشتراک بگذارند.

شبکه های Docker چگونه کار می کنند

هنگامی که یک ظرف ایجاد می کنید ، Docker آن را به یک شبکه پیش فرض به نام The Bridge Network وصل می کند. شبکه Bridge مانند سوئیچ است که تمام ظروف موجود در یک میزبان را به هم وصل می کند. این شبکه آدرس IP خود را به هر ظرف می دهد. با استفاده از این آدرس IP ، ظروف می توانند با استفاده از شبکه با یکدیگر صحبت کنند.

برای دیدن همه شبکه های موجود در سیستم خود ، می توانید دستور را اجرا کنید:

docker network ls
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این دستور لیستی از شبکه هایی را که Docker ایجاد کرده است نشان می دهد. شبکه های پیش فرض مانند Bridge ، Host و None را مشاهده خواهید کرد. با استفاده از این شبکه ها ، Docker نحوه ارتباط ظروف را کنترل می کند.

بعضی اوقات می خواهید شبکه خود را ایجاد کنید. شبکه های سفارشی کنترل بیشتری بر ارتباطات کانتینر به شما می دهند. هنگامی که یک شبکه سفارشی ایجاد می کنید ، می توانید نحوه اتصال و به اشتراک گذاری داده ها را تعریف کنید. برای اطلاعات بیشتر در مورد ایجاد شبکه های شخصی خود ، راهنمای ایجاد شبکه های Docker Custom را بررسی کنید. در این مقاله مراحل و مثالهایی ساده ارائه می شود که به شما در تنظیم یک شبکه سفارشی کمک می کند.

انواع شبکه های داکر

Docker انواع مختلفی از شبکه را ارائه می دهد. از هر نوع برای اهداف مختلف استفاده می شود. در اینجا موارد متداول وجود دارد:

شبکه

شبکه Bridge شبکه پیش فرض ظروف است. این مانند یک شبکه داخلی خصوصی در میزبان است. ظروف موجود در همان شبکه پل می توانند با استفاده از آدرس های IP خود با یکدیگر صحبت کنند. اگر می خواهید در مورد این اطلاعات بیشتر بدانید ، در مورد درک شبکه های Bridge بخوانید. در این مقاله توضیح می دهد که چگونه شبکه Bridge کار می کند و چرا مفید است.

شبکه میزبان

با داشتن یک شبکه میزبان ، یک ظرف از پشته شبکه دستگاه میزبان استفاده می کند. این بدان معنی است که هیچ انزوا برای شبکه وجود ندارد. این سریعتر است زیرا هیچ ترجمه شبکه وجود ندارد. اما امنیت کمتری دارد زیرا ظروف فضای شبکه میزبان را به اشتراک می گذارند. در صورت نیاز به عملکرد بسیار بالا از شبکه میزبان استفاده کنید و می تواند خطرات را برطرف کند.

شبکه روکش

هنگامی که میزبان بسیاری از Docker دارید از شبکه روکش استفاده می شود. در حالت Swarm ، شبکه های روکش اجازه می دهند ظروف در میزبان های مختلف با یکدیگر صحبت کنند. این نوع شبکه برای برنامه های توزیع شده بسیار مفید است. شما می توانید از شبکه های Overlay برای مدیریت برنامه های چند کانتینر که روی ماشین های مختلف کار می کنند استفاده کنید.

شبکه های سفارشی

شبکه های سفارشی توسط کاربران ایجاد می شوند. آنها می توانند شبکه های پل یا شبکه های روکش باشند. شبکه های سفارشی به شما انعطاف پذیری می دهند. می توانید شبکه هایی را تنظیم کنید که مطابق با نیاز برنامه شما باشد. هنگامی که یک شبکه سفارشی ایجاد می کنید ، می توانید تنظیمات آن را انتخاب کنید. به عنوان مثال ، ممکن است بخواهید یک زیر شبکه اختصاص دهید یا درایور را تغییر دهید. این کنترل اضافی می تواند به شما در جلوگیری از درگیری و بهبود امنیت کمک کند.

ارتباطات کانتینر داکر

ارتباط بین ظروف بخش اصلی کار با شبکه های Docker است. ظروف می توانند با استفاده از نامهای شبکه ای که به آنها می دهید ارتباط برقرار کنند. آنها نیازی به استفاده مستقیم از آدرس های IP ندارند. در عوض ، می توانید از نام های کانتینر به عنوان نام میزبان استفاده کنید. این امر تنظیم ارتباط را آسان تر می کند.

به عنوان مثال ، هنگامی که یک ظرف را اجرا می کنید ، ممکن است از دستور مانند این استفاده کنید:

docker run -d --name my_app --network my_network my_image
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این دستور ظرفی به نام “my_app” را اجرا می کند و آن را به شبکه “my_network” متصل می کند. سایر ظروف موجود در همان شبکه اکنون می توانند از “my_app” برای گفتگو با آن استفاده کنند. برای اطلاعات بیشتر ، ممکن است این راهنما را در مورد ارتباطات کانتینر Docker بسیار مفید پیدا کنید. این توضیح می دهد که چگونه از نام کانتینرها و آدرس های IP در شبکه استفاده می شود.

ایجاد و استفاده از شبکه های Docker

ایجاد شبکه Docker خود ساده است. می توانید از دستور زیر استفاده کنید:

docker network create my_network
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این دستور شبکه جدیدی به نام “my_network” ایجاد می کند. پس از ایجاد شبکه ، می توانید ظروف را به آن وصل کنید. استفاده از شبکه های سفارشی به شما کمک می کند تا قسمت هایی از برنامه خود را جدا کنید. همچنین مدیریت و ایمن کردن ظروف خود را آسان تر می کند.

در اینجا یک گردش کار مثال وجود دارد:

  1. یک شبکه ایجاد کنید.
   docker network create my_network
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. یک ظرف را در آن شبکه اجرا کنید.
   docker run -d --name container1 --network my_network my_image
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. یک ظرف دیگر را در همان شبکه اجرا کنید.
   docker run -d --name container2 --network my_network my_image
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

اکنون ، Container1 می تواند با استفاده از نام “Container2” با Container2 صحبت کند. این روش زمانی مفید است که شما چندین سرویس داشته باشید که باید با هم همکاری کنند. همچنین به مقیاس گذاری کمک می کند. هنگامی که ظروف بیشتری را اضافه می کنید ، می توانید آنها را در همان شبکه قرار دهید و آنها به راحتی ارتباط برقرار می کنند.

در موارد پیشرفته تر ، ممکن است ظروف زیادی در چندین میزبان پخش کنید. شبکه Docker در برنامه های چند کانتینر می تواند کمی پیچیده تر باشد. ممکن است شما نیاز به مدیریت بسیاری از قوانین شبکه داشته باشید. برای شبکه سازی پیشرفته تر و مدیریت کانتینر ، توصیه می کنم در مورد شبکه Docker برای برنامه های چند کانتینر بخوانید. این مقاله راهنمایی گام به گام و نمونه های واقعی را ارائه می دهد.

بهترین روشها با شبکه های Docker

وقتی سیستمی را با شبکه های Docker طراحی می کنید ، بهترین روش هایی وجود دارد که می توانید دنبال کنید. این شیوه ها می تواند به شما در جلوگیری از مشکلات بعداً کمک کند.

شبکه ها را ساده نگه دارید

شبکه های زیادی ایجاد نکنید. فقط آنچه را که لازم دارید ایجاد کنید. مدیریت شبکه های ساده آسان تر است. اگر شبکه های بیشتری اضافه کنید ، ردیابی نحوه اتصال ظروف دشوار می شود.

از نامهای معنی دار استفاده کنید

به شبکه های خود نامهای معنی دار بدهید. نامی مانند “my_network” برای یک آزمایش کوچک خوب است. اما برای تولید ، از نامهایی استفاده کنید که عملکرد شبکه را منعکس می کند. به عنوان مثال ، از “frontend_network” برای ظروف که ترافیک وب و “backend_network” را برای پایگاه داده ها و خدمات داخلی استفاده می کنند ، استفاده کنید.

محیط های جداگانه

محیط های مختلف را از هم جدا کنید. ظروف توسعه و تولید را در همان شبکه مخلوط نکنید. این امر به جلوگیری از تغییرات تصادفی که ممکن است بر یک سیستم زنده تأثیر بگذارد ، کمک می کند.

شبکه های خود را ایمن کنید

امنیت مهم است. اطمینان حاصل کنید که شبکه های خود را فقط با اجازه ظروف معتبر ایمن می کنید. در صورت لزوم ، می توانید از قوانین فایروال یا سایر اقدامات امنیتی استفاده کنید. اگرچه Docker انزوای اساسی را فراهم می کند ، امنیت اضافی می تواند برای برنامه های حساس مهم باشد.

نظارت بر عملکرد شبکه

همیشه عملکرد شبکه های خود را بررسی کنید. از ابزارهایی مانند آمار Docker و سایر ابزارهای نظارت بر شبکه استفاده کنید. این به شما کمک می کند بدانید که ظروف شما دارای مشکلات ارتباطی هستند یا خیر. اگر بعداً با مشکل روبرو شوید ، نظارت منظم می تواند باعث صرفه جویی در وقت شما شود.

عیب یابی شبکه های داکر

بعضی اوقات ، کارها همانطور که انتظار می رود با شبکه های Docker کار نمی کند. ظروف ممکن است قادر به برقراری ارتباط نباشند یا شبکه ممکن است خطاها را نشان دهد. در اینجا چند نکته برای عیب یابی آورده شده است:

  1. تنظیمات شبکه را بررسی کنید.

    فرمان را اجرا کنید docker network inspect my_network برای دیدن جزئیات این به شما دامنه IP ، ظروف متصل و تنظیمات دیگر را به شما نشان می دهد.

  2. ارتباط کانتینر آزمون.

    از دستوراتی مانند استفاده کنید ping یا curl در داخل یک ظرف برای آزمایش اینکه آیا می تواند با نام خود به یک ظرف دیگر برسد.

  3. گزارش ها را مرور کنید.

    برای هر خطای مربوط به شبکه ، سیاهههای مربوط به ظروف خود را بررسی کنید. بعضی اوقات ، خطاها در پیکربندی باعث مشکلات می شوند.

  4. شبکه را مجدداً راه اندازی کنید.

    گاهی اوقات به سادگی راه اندازی مجدد شبکه یا بازآفرینی ظروف می تواند مشکلات را حل کند.

اگر این مراحل را دنبال کنید ، می توانید بیشترین مشکلات را پیدا کرده و برطرف کنید. همیشه خوب است که اسناد را وقتی مطمئن نیستید ، مرور کنید. منابع زیادی به صورت آنلاین وجود دارد که این موضوعات را با جزئیات توضیح می دهد.

مورد استفاده در دنیای واقعی

بگذارید یک برنامه وب کوچک را تصور کنیم. در این برنامه ، شما یک سرویس جلوی و یک سرویس باطن دارید. Frontend یک سرور وب است و Backend یک پایگاه داده است. شما می خواهید این دو با هم ایمن با یکدیگر صحبت کنند. برای این منظور می توانید یک شبکه سفارشی ایجاد کنید.

ابتدا شبکه را ایجاد کنید:

docker network create web_app_network
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

سپس ، ظرف باطن را اجرا کنید:

docker run -d --name my_database --network web_app_network mysql:5.7
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

پس از آن ، ظرف جلوی آن را اجرا کنید:

docker run -d --name my_webserver --network web_app_network nginx
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

اکنون ، سرور وب می تواند با استفاده از نام کانتینر “my_database” به پایگاه داده وصل شود. این تنظیم در بسیاری از پروژه ها رایج است. استفاده از شبکه ها از این طریق ، مدیریت ارتباط بین خدمات را ساده می کند.

در پروژه های واقعی ، ممکن است ظروف بیشتری اضافه کنید. به عنوان مثال ، ممکن است یک سرویس ذخیره مانند Redis اضافه کنید. هر سرویس را می توان در شبکه ای متناسب با نیاز خود قرار داد. انعطاف پذیری شبکه های Docker یکی از دلایلی است که بسیاری از شرکت ها از Docker در تولید استفاده می کنند.

شبکه های داکر در محیط های چند میزبان

در استقرارهای بزرگتر ، ممکن است ظروف در دستگاه های مختلف داشته باشید. Docker از شبکه های چند میزبان با شبکه های روکش پشتیبانی می کند. شبکه های روکش در بسیاری از میزبان های Docker کار می کنند. آنها از رابط های شبکه دستگاه های میزبان برای ایجاد یک شبکه مجازی استفاده می کنند که همه میزبان ها را شامل می شود.

شبکه های روکش در حالت Swarm Docker ضروری هستند. حالت Swarm به شما امکان می دهد یک خوشه از موتورهای Docker را مدیریت کنید. هنگامی که شما یک سرویس در Swarm ایجاد می کنید ، می توانید آن را به یک شبکه روکش وصل کنید. این اجازه می دهد تا ظروف در میزبان های مختلف مانند آنها در همان شبکه ارتباط برقرار کنند.

اگرچه تنظیم یک شبکه روکش پیچیده تر است ، اما انعطاف پذیری زیادی به شما می دهد. می توانید ظروف روی سرورهای مختلف داشته باشید اما هنوز هم به راحتی در تعامل هستند. این روش برای مقیاس بندی برنامه ها مفید است. با استفاده از شبکه های روکش ، می توانید گره ها را بدون تغییر پیکربندی شبکه اضافه یا حذف کنید.

ملاحظات اضافی

هنگامی که با شبکه های Docker کار می کنید ، چند نکته دیگر را به خاطر بسپارید:

  • یادگیری با انجام: تمرین بهترین راه برای یادگیری است. شبکه های مختلفی را در دستگاه خود ایجاد کنید و ببینید که چگونه ظروف وصل می شوند.
  • مستندات: همیشه برای دقیق ترین جزئیات به مستندات Docker مراجعه کنید. اسناد داکر بسیار مفید هستند.
  • پشتیبانی جامعه: بسیاری از جوامع آنلاین می توانند به شما کمک کنند. انجمن ها و گروه های گپ می توانند مکان های خوبی برای درخواست کمک باشند.
  • آزمایش: قبل از استفاده از پیکربندی شبکه در تولید ، آن را در یک محیط امن آزمایش کنید. این به شما کمک می کند تا هر مشکلی را زودتر بدست آورید.

اگر می خواهید در مورد راه اندازی شبکه در محیط های چند کانتینر اطلاعات بیشتری کسب کنید ، این راهنما در مورد شبکه Docker برای برنامه های کانتینر چند منبع خوب است. نمونه های واضح و دستورالعمل های گام به گام را ارائه می دهد.

پایان

شبکه های Docker بخش اصلی استفاده از Docker هستند. آنها به ظروف اجازه می دهند تا با یکدیگر و با میزبان ارتباط برقرار کنند. در این مقاله ، ما یاد گرفتیم که شبکه های داکر و انواع مختلفی که می توانید از آنها استفاده کنید. ما شبکه پیش فرض پل را دیدیم و یاد گرفتیم که چگونه شبکه های سفارشی ایجاد کنیم. ما همچنین به شبکه های میزبان و روکش اشاره کردیم.

من برای توضیح ایده ها از نمونه های ساده و جملات کوتاه استفاده کردم. این مقاله به شکلی نوشته شده است که یک مبتدی بتواند آن را درک کند. اگر می خواهید به موضوع عمیق تر شیرجه بزنید ، باید سعی کنید شبکه های خود را ایجاد کرده و آنها را با ظروف مختلف آزمایش کنید.

برای مطالعه بیشتر در شبکه های کانتینر ، منابع مرتبط با این مقاله را بررسی کنید. ممکن است این توضیحات را در مورد درک شبکه های پل مفید پیدا کنید. همچنین ، مقاله در مورد ارتباطات کانتینر Docker توضیح می دهد که چگونه نام کانتینرها و آدرس های IP با هم کار می کنند.

یادگیری در مورد شبکه های Docker به زمان و تمرین نیاز دارد. هر نوع شبکه مورد استفاده خاص خود را دارد. با این شبکه ها آزمایش کنید تا ببینید کدام یک متناسب با پروژه شما است. هرچه راحت تر می شوید ، یاد می گیرید سیستم هایی را که مقیاس پذیر و ایمن هستند ، طراحی کنید.

به یاد داشته باشید ، Docker ابزاری برای کمک به شما در ساخت و اجرای برنامه ها به آرامی است. شبکه های Docker با اطمینان از اینکه ظروف شما می توانند با یکدیگر صحبت کنند ، به این امر اضافه می کنند. این که آیا شما در حال ساختن یک برنامه وب کوچک یا یک سیستم بزرگ توزیع شده هستید ، استفاده صحیح از شبکه ها می تواند کار شما را بسیار ساده تر کند.

امیدوارم این مقاله به شما در درک بهتر شبکه های داکر کمک کند. تمرین و آزمایش را ادامه دهید. با گذشت زمان ، اعتماد به نفس بیشتری در استفاده از Docker خواهید داشت. شبکه مبارک!


در این راهنما سعی کردم زبان را ساده نگه دارم و ایده ها را روشن کنم. من مطمئن شدم که چندین لینک را شامل می شود که اطلاعات بیشتری در مورد هر موضوع ارائه می دهد. با خواندن این منابع ، می توانید در مورد نحوه کار شبکه های Docker و نحوه استفاده از آنها در پروژه های خود اطلاعات بیشتری کسب کنید.

برای مراحل دقیق تر در مورد ایجاد شبکه ها ، همیشه می توانید راهنمای ایجاد شبکه های داکر سفارشی را دوباره بررسی کنید. این منبع نمونه هایی را ارائه می دهد که می تواند به شما در ساخت شبکه از ابتدا کمک کند.

با تشکر از شما برای خواندن این مقاله در شبکه های Docker. امیدوارم که برای سفر خود در کانتینر و DevOps مفید باشد. از آزمایش با Docker لذت ببرید و حتماً تمام گزینه های شبکه موجود را کشف کنید.

برنامه نویسی و شبکه سازی مبارک!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا