Докер мрежа 101

Нека научим Docker Networking ….


В докер има главно пет мрежи – мост, хост, наслагване, няма и macvlan.

Мрежовата мрежа е мрежата по подразбиране в докер. Въведение в тези мрежи беше дадено в предишната ми статия за докерската архитектура.

В тази статия ще ви покажа практическата част от докерската мрежа. Ще се запознаете как можете да проверите данните на вашата докерска мрежа, как да се свържете с мрежа, как да създадете вашата мрежа и други. Така че, нека започнем.

Всеки път, когато стартирате контейнер за докер, мрежово повикване по подразбиране docker0 се свързва с контейнера, освен ако не е посочена друга мрежа. Например, когато изпълня командата ifconfig, ще получите подробности за мрежата docker0 от тип мост, заедно с други подробности за мрежата.

[Имейл защитен]: ~ $ ifconfig

docker0: знамена = 4099 mtu 1500

inet 172.17.0.1 мрежова маска 255.255.0.0 излъчване 172.17.255.255

етер 02: 42: f6: 59: 4a: 5f txqueuelen 0 (Ethernet)

RX пакети 0 байта 0 (0,0 B)

RX грешки 0 паднаха 0 превишения 0 кадър 0

TX пакети 0 байта 0 (0,0 B)

TX грешки 0 паднали 0 превишения 0 превозвач 0 сблъсък 0

enp0s3: знамена = 4163 mtu 1500

inet 10.0.2.15 мрежова маска 255.255.255.0 излъчване 10.0.2.255

inet6 fe80 :: 763e: c0b4: 14df: b273 префикслен 64 обхват 0x20

етер 08: 00: 27: 68: 64: 9a txqueuelen 1000 (Ethernet)

RX пакети 2157 байта 2132896 (2.1 MB)

RX грешки 0 паднаха 0 превишения 0 кадър 0

TX пакети 952 байта 151610 (151,6 KB)

TX грешки 0 паднали 0 превишения 0 превозвач 0 сблъсък 0

enp0s8: знамена = 4163 mtu 1500

инет 192.168.56.102 маска 255.255.255.0 излъчване 192.168.56.255

inet6 fe80 :: 20a: 6c57: 839d: 2652 префикслен 64 обхват 0x20

етер 08: 00: 27: 53: 45: 82 txqueuelen 1000 (Ethernet)

RX пакети 10597 байта 1497146 (1.4 MB)

RX грешки 0 паднаха 0 превишения 0 кадър 0

TX пакети 12058 байта 1730219 (1.7 MB)

TX грешки 0 паднали 0 превишения 0 превозвач 0 сблъсък 0

lo: знамена = 73 mtu 65536

inet 127.0.0.1 маска 255.0.0.0

inet6 :: 1 префикс 128 обхват 0x10

loop txqueuelen 1000 (Local Loopback)

RX пакети 1196 байта 105396 (105,3 KB)

RX грешки 0 паднаха 0 превишения 0 кадър 0

TX пакети 1196 байта 105396 (105,3 KB)

TX грешки 0 паднали 0 превишения 0 превозвач 0 сблъсък 0

Листинг мрежа

Изпълнете командата ls, за да проверите всички мрежи, работещи на текущия хост. Можете да видите, в момента присъстват седем мрежи, включително мост, хост и нито една, които се създават автоматично, когато инсталирате Docker. В зависимост от контейнерите, които съм управлявал в миналото, има и подробности за други персонализирани мрежи.

[Имейл защитен]: ~ $ docker мрежа ls

ОБХВАТ НА ИМЕТА НА МРЕЖА

fec751a6ae21 мост мост местен

21943b20735d мост docker_gwbridge local

f51d1f3379e0 хост хост локален

ppp8i7tvrxa0 въвеждане на наслагване

ba68f73abeed средно-app_default мост локален

d466e75d86fa mean_default bridge local

5e5d9a192c00 няма нулева локална

Проверка на мрежата

Можете да стартирате команда инспектиране, за да получите всички подробности за даден тип мрежа. Тя дава информация за мрежата, която включва име, идентификатор, създадено време, обхват, драйвер, конфигуриране на подробности като подмрежа и адрес на шлюза. Ще дам и подробности за контейнера, ако някой контейнер е готов и работи. В противен случай тя ще върне празен низ.

[Имейл защитен]: ~ $ docker мрежа проверява моста

[

{

"име": "мост",

"Документ за самоличност": "fec751a6ae21f20a06cdc6eb823e773caec063b6bf9a388016594e59fd1db475",

"Създаден": "2019-08-01T10: 30: 27.595054009-04: 00",

"Обхват": "местен",

"шофьор": "мост",

"EnableIPv6": невярно,

"IPAM": {

"шофьор": "по подразбиране",

"Настроики": нула,

"Config": [

{

"подмрежата": "172.17.0.0/16",

"врата": "172.17.0.1"

}

]

},

"вътрешен": невярно,

"закрепен": невярно,

"вход": невярно,

"ConfigFrom": {

"мрежа": ""

},

"ConfigOnly": невярно,

"Контейнери": {},

"Настроики": {

"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"

},

"Етикети": {}

}

]

Създайте мрежа

Използвайки команда create, можете да създадете своя собствена собствена мрежа. Трябва да споменете типа драйвер с –driver флаг, в по-долу примера Използвам тип мост.

[Имейл защитен]: ~ $ docker network create –driver bridge geekflare_network

08e0da91f6de6c640b1b6f8a8602973f310b8ee9b04961389b7dfda842ccc409

Изпълнете командата ls, за да проверите дали мрежата е създадена.

[Имейл защитен]: ~ $ docker мрежа ls

ОБХВАТ НА ИМЕТА НА МРЕЖА

fec751a6ae21 мост мост местен

21943b20735d мост docker_gwbridge local

08e0da91f6de мост geekflare_network местен

f51d1f3379e0 хост хост локален

ppp8i7tvrxa0 въвеждане на наслагване

ba68f73abeed средно-app_default мост локален

d466e75d86fa mean_default bridge local

5e5d9a192c00 няма нулева локална

Сега ще пусна контейнер за докер в създадената от мен мрежа. Пускам прост контейнер за сървър на апаш в команда отдолу.

[Имейл защитен]: ~ $ docker run -it -d –network = geekflare_network httpd

38a0b0646da1a0045afcf7aa0cd6228b851f74107a6718bb19d599e896df1002

Изпълнява команда за проверка, за да провери цялата информация на geekflare_network. Можете да намерите подробности за контейнера този път в тази проверка на изхода; името на контейнера е determined_dubinsky.

[Имейл защитен]: ~ $ docker мрежа проверява geekflare_network

[

{

"име": "geekflare_network",

"Документ за самоличност": "08e0da91f6de6c640b1b6f8a8602973f310b8ee9b04961389b7dfda842ccc409",

"Създаден": "2019-09-03T13: 56: 36.244295204-04: 00",

"Обхват": "местен",

"шофьор": "мост",

"EnableIPv6": невярно,

"IPAM": {

"шофьор": "по подразбиране",

"Настроики": {},

"Config": [

{

"подмрежата": "172.21.0.0/16",

"врата": "172.21.0.1"

}

]

},

"вътрешен": невярно,

"закрепен": невярно,

"вход": невярно,

"ConfigFrom": {

"мрежа": ""

},

"ConfigOnly": невярно,

"Контейнери": {

"38a0b0646da1a0045afcf7aa0cd6228b851f74107a6718bb19d599e896df1002": {

"име": "determined_dubinsky",

"EndpointID": "30d252720e0f381ba01d6f5414525dff8587abcf3c4920100f112898a52c8a23",

"Мак адрес": "02: 42: AC: 15: 00: 02",

"IPv4Address": "172.21.0.2/16",

"IPv6Address": ""

}

},

"Настроики": {},

"Етикети": {}

}

]

Прекъснете мрежата

За да изключите мрежата от контейнера, изпълнете командата по-долу. В командата за прекъсване трябва да споменете името на мрежата и името на контейнера.

[Имейл защитен]: ~ $ docker мрежа изключва geekflare_network deter_dubinsky

Тази мрежа вече няма да използва контейнер deter_dubinsky; полето на контейнера ще бъде празно.

[Имейл защитен]: ~ $ docker мрежа проверява geekflare_network

[

{

"име": "geekflare_network",

"Документ за самоличност": "08e0da91f6de6c640b1b6f8a8602973f310b8ee9b04961389b7dfda842ccc409",

"Създаден": "2019-09-03T13: 56: 36.244295204-04: 00",

"Обхват": "местен",

"шофьор": "мост",

"EnableIPv6": невярно,

"IPAM": {

"шофьор": "по подразбиране",

"Настроики": {},

"Config": [

{

"подмрежата": "172.21.0.0/16",

"врата": "172.21.0.1"

}

]

},

"вътрешен": невярно,

"закрепен": невярно,

"вход": невярно,

"ConfigFrom": {

"мрежа": ""

},

"ConfigOnly": невярно,

"Контейнери": {},

"Настроики": {},

"Етикети": {}

}

]

За да създадете различна от мостова мрежа, трябва да споменете името на драйвера, различно от мост. За да създадете мрежа за наслагване, изпълнете командата по-долу.

[Имейл защитен]: ~ $ docker network create –driver overlay geekflare_network_2

ynd2858eu1cngwhpc40m3h1nx

[Имейл защитен]: ~ $ docker мрежа ls

ОБХВАТ НА ИМЕТА НА МРЕЖА

fec751a6ae21 мост мост местен

21943b20735d мост docker_gwbridge local

08e0da91f6de мост geekflare_network местен

f51d1f3379e0 хост хост локален

ppp8i7tvrxa0 въвеждане на наслагване

ba68f73abeed средно-app_default мост локален

d466e75d86fa mean_default bridge local

5e5d9a192c00 няма нулева локална

ynd2858eu1cn geekflare_network_2 наслагване рояк

За да създадете хост мрежа, споменете хост със знаме –Driver. Примерът по-долу връща грешка, тъй като е разрешен само един екземпляр на хост мрежа, който вече се изпълняваше преди. Така че тази команда няма да създаде друга хост мрежа.

[Имейл защитен]: ~ $ docker network create –driver хост geekflare_network_3

Отговор за грешка от демон: само един екземпляр от "домакин" мрежа е позволено

заключение

Това беше всичко за мрежата на докери и как можете да свързвате, прекъсвате връзката, да създавате, да проверявате докер мрежите. Изпробвайте тези команди, за да се запознаете с Docket мрежите. Ако сте любопитни да научите Net Devops, проверете това Удеми курс.

ЕТИКЕТИ:

  • докер

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