شبکه Docker 101

بیایید شبکه Docker را بیاموزیم ….


بطور عمده پنج شبکه در docker وجود دارد – Bridge، host، overlay، no و macvlan.

شبکه Bridge شبکه پیش فرض در docker است. مقدمه ای در مورد این شبکه ها در مقاله قبلی من درباره معماری داکر ارائه شده است.

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

هر زمان که یک ظرف docker را اجرا کردید ، یک تماس شبکه پیش فرض Bridge docker0 با کانتینر ارتباط می یابد ، مگر اینکه شبکه دیگری مشخص شود. به عنوان مثال ، هنگامی که من دستور ifconfig را اجرا کردم ، جزئیات شبکه docker0 از نوع Bridge را به همراه سایر جزئیات شبکه دریافت خواهید کرد.

[ایمیل محافظت شده]: ~ $ ifconfig

docker0: flags = 4099 mtu 1500

inet 172.17.0.1 netmask 255.255.0.0 پخش 172.17.255.255

اتر 02: 42: f6: 59: 4a: 5f txqueuelen 0 (اترنت)

بسته های RX 0 بایت 0 (0.0 B)

خطاهای RX 0 صفر غلبه بر 0 فریم 0 افت کرد

بسته های TX 0 بایت 0 (0.0 B)

خطاهای TX 0 بر 0 غلبه 0 حامل 0 برخورد 0

enp0s3: flags = 4163 mtu 1500

inet 10.0.2.15 netmask 255.255.255.0 پخش 10.0.2.255

inet6 fe80 :: 763e: c0b4: 14df: b273 prefixlen 64 rangeid 0x20

اتر 08: 00: 27: 68: 64: 9a txqueuelen 1000 (اترنت)

بسته های RX 2157 بایت 2132896 (2.1 مگابایت)

خطاهای RX 0 صفر غلبه بر 0 فریم 0 افت کرد

بسته های TX 952 بایت 151610 (151.6 KB)

خطاهای TX 0 بر 0 غلبه 0 حامل 0 برخورد 0

enp0s8: flags = 4163 mtu 1500

inet 192.168.56.102 netmask 255.255.255.0 پخش 192.168.56.255

inet6 fe80 :: 20a: 6c57: 839d: 2652 prefixlen 64 rangeid 0x20

اتر 08: 00: 27: 53: 45: 82 txqueuelen 1000 (اترنت)

بسته های RX 10597 بایت 1497146 (1.4 مگابایت)

خطاهای RX 0 صفر غلبه بر 0 فریم 0 افت کرد

بسته های TX 12058 بایت 1730219 (1.7 مگابایت)

خطاهای TX 0 بر 0 غلبه 0 حامل 0 برخورد 0

lo: flags = 73 mtu 65536

inet 127.0.0.1 netmask 255.0.0.0

inet6 :: 1 پیشوند 128 دامنه 0x10

loop txqueuelen 1000 (حلقه محلی)

بسته های RX 1196 بایت 105396 (105.3 KB)

خطاهای RX 0 صفر غلبه بر 0 فریم 0 افت کرد

بسته های TX 1196 بایت 105396 (105.3 KB)

خطاهای TX 0 بر 0 غلبه 0 حامل 0 برخورد 0

شبکه لیست

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

[ایمیل محافظت شده]: ~ $ docker شبکه ls

نام راننده اسکواپ نامگذاری شبکه NETWORK

محلی برای پل محلی fec751a6ae21

21943b20735d docker_gwbridge Bridge local

میزبان محلی میزبان f51d1f3379e0

ppp8i7tvrxa0 ازدحام پوشش

ba68f73abeed-app_default Bridge محلی

d466e75d86fa bridge_default Bridge محلی

5e5d9a192c00 هیچ محلی تهی نیست

بازرسی شبکه

برای بدست آوردن کلیه جزئیات در مورد نوع شبکه می توانید دستور inspect را اجرا کنید. اطلاعاتی در مورد شبکه می دهد که شامل Name ، Id ، زمان ایجاد شده ، Scope ، Driver ، جزئیات پیکربندی مانند Subnet و آدرس Gateway است. در صورت آماده بودن و ظروف هر ظروف ، جزئیات ظرف را نیز خواهم داد. در غیر این صورت ، یک رشته خالی برمی گرداند.

[ایمیل محافظت شده]: ~ $ docker network inspection Bridge

[

{

"نام": "پل",

"شناسه": "fec751a6ae21f20a06cdc6eb823e773caec063b6bf9a388016594e59fd1db475",

"ایجاد شده": "2019-08-01T10: 30: 27.595054009-04: 00",

"محدوده": "محلی",

"راننده": "پل",

"EnableIPv6": نادرست,

"IPAM": {

"راننده": "پیش فرض",

"گزینه ها": خالی,

"پیکربندی": [

{

"زیر شبکه": "172.17.0.0/16",

"دروازه": "172.17.0.1"

}

]

},

"درونی؛ داخلی": نادرست,

"پیوست": نادرست,

"Ingress": نادرست,

"پیکربندی از": {

"شبکه": ""

},

"پیکربندی فقط": نادرست,

"ظروف": {},

"گزینه ها": {

"com.docker.network.bridge.default_bridge": "درست است، واقعی",

"com.docker.network.bridge.enable_icc": "درست است، واقعی",

"com.docker.network.bridge.enable_ip_masquerade": "درست است، واقعی",

"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",

"com.docker.network.bridge.name": "docker0",

"com.docker.network.driver.mtu": "1500"

},

"برچسب ها": {}

}

]

ایجاد شبکه

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

[ایمیل محافظت شده]: network شبکه docker $ ایجاد –driver Bridge geekflare_network

08e0da91f6de6c640b1b6f8a8602973f310b8ee9b04961389b7dfda842ccc409

دستور ls را اجرا کنید تا بررسی کنید شبکه ایجاد شده است یا خیر.

[ایمیل محافظت شده]: ~ $ docker شبکه ls

نام راننده اسکواپ نامگذاری شبکه NETWORK

محلی برای پل محلی fec751a6ae21

21943b20735d docker_gwbridge Bridge local

08e0da91f6de geekflare_network Bridge محلی

میزبان محلی میزبان f51d1f3379e0

ppp8i7tvrxa0 ازدحام پوشش

ba68f73abeed-app_default Bridge محلی

d466e75d86fa bridge_default Bridge محلی

5e5d9a192c00 هیچ محلی تهی نیست

اکنون ظرف شبکه docker را روی شبکه ای که ایجاد کردم اجرا خواهم کرد. من یک دستور سرور ساده apache را در دستور زیر اجرا می کنم.

[ایمیل محافظت شده]: ~ $ docker run -it -d –network = geekflare_network httpd

38a0b0646da1a0045afcf7aa0cd6228b851f74107a6718bb19d599e896df1002

در حال اجرا دستور بازرسی برای بررسی تمام اطلاعات مربوط به geekflare_network. می توانید جزئیات بار ظرف را این بار در این بازرسی پیدا کنید. نام ظرف است diy_dubinsky.

[ایمیل محافظت شده]: network شبکه docker $ geekflare_network را بازرسی می کند

[

{

"نام": "geekflare_network",

"شناسه": "08e0da91f6de6c640b1b6f8a8602973f310b8ee9b04961389b7dfda842ccc409",

"ایجاد شده": "2019-09-03T13: 56: 36.244295204-04: 00",

"محدوده": "محلی",

"راننده": "پل",

"EnableIPv6": نادرست,

"IPAM": {

"راننده": "پیش فرض",

"گزینه ها": {},

"پیکربندی": [

{

"زیر شبکه": "172.21.0.0/16",

"دروازه": "172.21.0.1"

}

]

},

"درونی؛ داخلی": نادرست,

"پیوست": نادرست,

"Ingress": نادرست,

"پیکربندی از": {

"شبکه": ""

},

"پیکربندی فقط": نادرست,

"ظروف": {

"38a0b0646da1a0045afcf7aa0cd6228b851f74107a6718bb19d599e896df1002": {

"نام": "diy_dubinsky",

"EndpointID": "30d252720e0f381ba01d6f5414525dff8587abcf3c4920100f112898a52c8a23",

"MacAddress": "02: 42: ac: 15: 00: 02",

"IPv4Address": "172.21.0.2/16",

"IPv6Address": ""

}

},

"گزینه ها": {},

"برچسب ها": {}

}

]

شبکه را قطع کنید

برای جدا کردن شبکه از ظرف ، دستور زیر را اجرا کنید. شما باید در نام disconnect نام شبکه و نام کانتینر را ذکر کنید.

[ایمیل محافظت شده]: network شبکه docker $ از geekflare_network مشخص شده_dubinsky جدا شود

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

[ایمیل محافظت شده]: network شبکه docker $ geekflare_network را بازرسی می کند

[

{

"نام": "geekflare_network",

"شناسه": "08e0da91f6de6c640b1b6f8a8602973f310b8ee9b04961389b7dfda842ccc409",

"ایجاد شده": "2019-09-03T13: 56: 36.244295204-04: 00",

"محدوده": "محلی",

"راننده": "پل",

"EnableIPv6": نادرست,

"IPAM": {

"راننده": "پیش فرض",

"گزینه ها": {},

"پیکربندی": [

{

"زیر شبکه": "172.21.0.0/16",

"دروازه": "172.21.0.1"

}

]

},

"درونی؛ داخلی": نادرست,

"پیوست": نادرست,

"Ingress": نادرست,

"پیکربندی از": {

"شبکه": ""

},

"پیکربندی فقط": نادرست,

"ظروف": {},

"گزینه ها": {},

"برچسب ها": {}

}

]

برای ایجاد غیر از شبکه Bridge ، باید نام درایور را غیر از Bridge ذکر کنید. برای ایجاد یک شبکه روکش ، دستور زیر را اجرا کنید.

[ایمیل محافظت شده]: network شبکه docker $ ایجاد کنید – روکش راننده geekflare_network_2

ynd2858eu1cngwhpc40m3h1nx

[ایمیل محافظت شده]: ~ $ docker شبکه ls

نام راننده اسکواپ نامگذاری شبکه NETWORK

محلی برای پل محلی fec751a6ae21

21943b20735d docker_gwbridge Bridge local

08e0da91f6de geekflare_network Bridge محلی

میزبان محلی میزبان f51d1f3379e0

ppp8i7tvrxa0 ازدحام پوشش

ba68f73abeed-app_default Bridge محلی

d466e75d86fa bridge_default Bridge محلی

5e5d9a192c00 هیچ محلی تهی نیست

پوشش swarm ynd2858eu1cn geekflare_network_2

برای ایجاد یک شبکه میزبان ، میزبان را با پرچم راننده ذکر کنید. مثال زیر خطایی را نشان می دهد زیرا فقط یک نمونه میزبان شبکه مجاز است ، که قبلاً نیز در حال اجرا بود. بنابراین ، این دستور شبکه میزبان دیگری ایجاد نمی کند.

[ایمیل محافظت شده]: network شبکه docker $ – میزبان هدایت geekflare_network_3 ایجاد کنید

پاسخ خطا از Daemon: فقط یک نمونه از "میزبان" شبکه مجاز است

نتیجه

این همه مربوط به شبکه docker بود و اینکه چگونه می توانید شبکه ها را وصل کنید ، قطع کنید ، ایجاد کنید ، بازرسی کنید. برای آشنایی با شبکه Docket این دستورات را امتحان کنید. اگر در یادگیری Net Devops کنجکاو هستید ، این موضوع را بررسی کنید البته Udemy.

برچسب ها:

  • داکر

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map