این قسمت در مورد docker network میخواهیم صحبت کنیم. این دستور به ما کمک خواهد کرد که شبکهی ارتباطی docker و کانتیرهای آن را مدیریت کنیم و ارتباط کانتینرها با یکدیگر و هاست خود و دیگر هاستها را پیکربندی نماییم.
این دستور ۷ تا آپشن دارد که تعدادی از آنها خیلی اهمیت دارد و بسیار پر مصرف میباشد.
دستور docker network connect:
با استفاده از این آپشن میتوانید یک کانتینر را به یک شبکه که ایجاد کردهاید متصل نمایید. این دستور خودش دارای آپشنهایی هست که با استفاده از آن میتوان کانتینر را به شبکه متصل کرد.
با استفاده از آپشنها میتوان به کانتینر alias داد و برای آن ip نسخهی ۴ و ۶ قرار داد و بین کانتینرها لینک ایجاد کرد. با استفاده از این آپشن میتوان کانتینرهایی که ایجاد شده است را به شبکههای مختلف که ساخته شده است متصل کرد. به مثالهای زیر توجه کنید:
docker network connect network1 container1 docker network connect --ip 10.10.36.122 network1 container1 docker network connect --link container2:c2 network1 container2 docker network connect --alias db --alias mysql network1 container2
در مثالهای بالا مشاهده میکنید که کانتینر در حال کار را به یک شبکه متصل کرده که در این راستا کانفیگهای دیگری اعم از IP و لینک و موارد اینچنینی را انجام داده است.
دستور docker network create:
با استفاده از این آپشن شما میتوانید یک network ایجاد کنید. این دستور نیز خودش دارای آپشنهای زیادی میباشد که با استفاده از آنها میتوانید network را با جزئیات بیشتری ایجاد کنید.
معمولا تمام این آپشنها مورد استفاده نیست و بیشتر در سناریوها این موارد را بررسی میکنیم. در اینجا به بیان چند مثال اکتفا میکنیم.
در این مثال یک network با درایور bridge ایجاد شده است که نام آن my-bridge-network میباشد.
docker network create -d bridge my-bridge-network
در این مثال یک network با subnet مشخص ip ایجاد شده است که نام آن multi-host-network میباشد.
docker network create –subnet 172.20.0.0/16 –ip-range 172.20.240.0/20 multi-host-network
در این مثال یک network با subnet مشخص ایجاد شده است که درایور آن را نیز bridge قرار داده است که برای درایور bridge آپشن mtu را برابر 9216 قرار داده است.
docker network create –driver=bridge –subnet=172.28.0.0/16 –ip-range=172.28.5.0/24 –gateway=172.28.5.254 –opt com.docker.network.driver.mtu=9216 br0
همانطور که در مثالهای بالا مشاهده کردید تقریبا تمام موارد مربوط به پیکربندی network را میتوانید با آپشنهای موجود در هنگام ایجاد network بر روی آن اعمال کنید. توضیح تمام این موارد را میتوانید در اینلینک مشاهده کنید و اینکه بنا بر نیاز برخی از این آپشنها در سناریوهای پیادهسازی بررسی خواهد شد.
دستور docker network disconnect:
این دستور برعکس دستور connect کانتینر شما را از network شما قطع خواهد کرد و به network پیشفرض متصل میکند. تنها یک آپشن دارد که مربوط به force میباشد. به الگو استفادهی آن توجه کنید.
به مثال زیر توجه کنید:
docker network disconnect multi-host-network container1
دستور docker network inspect:
با استفاده از این دستور میتوانید جزئیات کامل و تمامی اطلاعات موجود در مورد network که ایجاد شده است را داشته باشید.
به صورت پیشفرض خروجی که به شما نمایش میدهد به صورت JSON میباشد. با استفاده از آپشن f- میتوانید فرمت مد نظر خودتون در خروجی این دستور را داشته باشید.
هر زمانی که یک network ایجاد کردید با استفاده از این دستور میتوانید بررسی کنید که مواردی که اعمال کردید به درستی ایجاد شده است و یا اینکه چه کانتینرهایی در حال حاضر با این network در ارتباط هستند.
دستور docker network ls:
با استفاده از این دستور شما میتوانید لیست networkهایی که ایجاد کردید را مشاهده کنید. این دستور دارای چند تا آپشن میباشد که با توجه به توضیحات دستورات قبلی تمام موارد آن مشخص میباشد.
به مثالهای زیر توجه کنید:
در مثال زیر لیست networkهایی را نمایش میدهد که درایور آنها bridge باشد.
docker network ls –filter driver=bridge
مواردی که بر اساس آن میتوان در این دستور filter نوشت تا خروجی دلخواه را داشت به قرار زیر است.
یکی دیگر از آپشنهایی که مورد استفاده دارد format است که بر اساس آن میتوان خروجی را متناسب با دلخواه و مورد استفاده خود تغییر داد و آن را ایجاد کرد. مواردی که در فرمت میتوان آنها را داشت به قرار زیر است:
برای مثال زمانی که بخواهید در خروجی فقط id و driver مربوط به هر network را داشته باشید از دستور زیر استفاده میکنید.
docker network ls --format "{{.ID}}: {{.Driver}}"
دستور docker network prune:
با استفاده از این دستور شما میتوانید تمام networkهایی که بی استفاده است را پاک کنید.
آپشنهای این دستور مشخص میباشد که با یکی از آنها فیلتری برای مشخص کردن اینکه کدام یک از آپشنها پاک شود مشخص خواهید کرد و با یکی دیگر برای پاک کردن اجبار ایجاد خواهید کرد.
بر اساس موارد زیر میتوانید برای این دستور فیلتر مشخص بنویسید.
دستور docker network rm:
با استفاده از این دستور نیز میتوانید network ایجاد شده را پاک نمایید.
docker network rm my-network
آخرین دیدگاهها