Docker Networking 101

Nauczmy się sieci Docker….


W dokerze znajduje się głównie pięć sieci – mostek, host, nakładka, brak i macvlan.

Sieć mostkowa jest siecią domyślną w oknie dokowanym. Wprowadzenie do tych sieci podano w poprzednim artykule na temat architektury dokerów.

W tym artykule pokażę praktyczną część sieci dokerów. Dowiesz się, jak sprawdzić szczegóły sieci dokerów, jak połączyć się z siecią, jak utworzyć sieć i wiele więcej. Więc zacznijmy.

Ilekroć uruchamiasz kontener dokerów, domyślne połączenie sieciowe mostu doker0 zostanie powiązany z kontenerem, chyba że zostanie określona inna sieć. Na przykład, gdy uruchomię polecenie ifconfig, otrzymasz szczegóły sieci typu docker0 typu mostu wraz z innymi szczegółami sieci.

[chroniony e-mailem]: ~ $ ifconfig

docker0: flags = 4099 mtu 1500

inet 172.17.0.1 maska ​​sieci 255.255.0.0 transmisja 172.17.255.255

ether 02: 42: f6: 59: 4a: 5f txqueuelen 0 (Ethernet)

Pakiety RX 0 bajtów 0 (0,0 B)

Błędy RX 0 usunięte 0 przekroczenia 0 ramka 0

Pakiety TX 0 bajtów 0 (0,0 B)

Błędy TX 0 usunięte 0 przekroczenia 0 przewoźnik 0 kolizje 0

enp0s3: flags = 4163 mtu 1500

inet 10.0.2.15 maska ​​sieci 255.255.255.0 transmisja 10.0.2.255

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

ether 08: 00: 27: 68: 64: 9a txqueuelen 1000 (Ethernet)

Pakiety RX 2157 bajtów 2132896 (2,1 MB)

Błędy RX 0 usunięte 0 przekroczenia 0 ramka 0

Pakiety TX 952 bajtów 151610 (151,6 KB)

Błędy TX 0 usunięte 0 przekroczenia 0 przewoźnik 0 kolizje 0

enp0s8: flags = 4163 mtu 1500

inet 192.168.56.102 maska ​​sieci 255.255.255.0 transmisja 192.168.56.255

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

ether 08: 00: 27: 53: 45: 82 txqueuelen 1000 (Ethernet)

Pakiety RX 10597 bajtów 1497146 (1,4 MB)

Błędy RX 0 usunięte 0 przekroczenia 0 ramka 0

Pakiety TX 12058 bajtów 1730219 (1,7 MB)

Błędy TX 0 usunięte 0 przekroczenia 0 przewoźnik 0 kolizje 0

lo: flags = 73 mtu 65536

inet 127.0.0.1 maska ​​sieci 255.0.0.0

inet6 :: 1 prefixlen 128 scopeid 0x10

loop txqueuelen 1000 (lokalna pętla zwrotna)

Pakiety RX 1196 bajtów 105396 (105,3 KB)

Błędy RX 0 usunięte 0 przekroczenia 0 ramka 0

Pakiety TX 1196 bajtów 105396 (105,3 KB)

Błędy TX 0 usunięte 0 przekroczenia 0 przewoźnik 0 kolizje 0

Sieć aukcyjna

Uruchom polecenie ls, aby sprawdzić wszystkie sieci działające na bieżącym hoście. Jak widać, obecnie dostępnych jest siedem sieci, w tym mostek, host i żadna, które są tworzone automatycznie po zainstalowaniu Dockera. W zależności od kontenerów, które prowadziłem w przeszłości, są też szczegóły innych niestandardowych sieci.

[chroniony e-mailem]: ~ $ sieć dokerów ls

NAZWA ID SIECI ZAKRES STEROWNIKA

fec751a6ae21 most most lokalny

21943b20735d docker_gwbridge most lokalny

f51d1f3379e0 host host lokalny

ppp8i7tvrxa0 ingress overlay rój

ba68f73abeed mean-app_default bridge lokalny

d466e75d86fa mean_default bridge lokalny

5e5d9a192c00 brak lokalny null

Sprawdzanie sieci

Możesz uruchomić polecenie inspect, aby uzyskać wszystkie szczegóły dotyczące typu sieci. Podaje informacje o sieci, które obejmują nazwę, identyfikator, czas utworzenia, zakres, sterownik, szczegóły konfiguracji, takie jak adres podsieci i bramy. Podam również szczegóły kontenera, jeśli którykolwiek z kontenerów jest uruchomiony. W przeciwnym razie zwróci pusty ciąg.

[chroniony e-mailem]: ~ $ sieć dokerów sprawdza most

[

{

"Imię": "most",

"ID": "fec751a6ae21f20a06cdc6eb823e773caec063b6bf9a388016594e59fd1db475",

"Utworzony": "2019-08-01T10: 30: 27.595054009-04: 00",

"Zakres": "lokalny",

"Kierowca": "most",

"Włącz IPv6": fałszywe,

"IPAM": {

"Kierowca": "domyślna",

"Opcje": zero,

"Config": [

{

"Podsieć": "172.17.0.0/16",

"Przejście": "172.17.0.1"

}

]

},

"Wewnętrzny": fałszywe,

"Dołączalny": fałszywe,

"Ingres": fałszywe,

"ConfigFrom": {

"Sieć": ""

},

"ConfigOnly": fałszywe,

"Pojemniki": {},

"Opcje": {

"com.docker.network.bridge.default_bridge": "prawdziwe",

"com.docker.network.bridge.enable_icc": "prawdziwe",

"com.docker.network.bridge.enable_ip_masquerade": "prawdziwe",

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

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

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

},

"Etykiety": {}

}

]

Utwórz sieć

Korzystając z polecenia create, możesz stworzyć własną sieć. Musisz podać typ sterownika z flagą –driver, w poniższym przykładzie używam typu mostka.

[chroniony e-mailem]: ~ $ sieć dokerów utwórz –driver bridge geekflare_network

08e0da91f6de6c640b1b6f8a8602973f310b8ee9b04961389b7dfda842ccc409

Uruchom polecenie ls, aby sprawdzić, czy sieć została utworzona.

[chroniony e-mailem]: ~ $ sieć dokerów ls

NAZWA ID SIECI ZAKRES STEROWNIKA

fec751a6ae21 most most lokalny

21943b20735d docker_gwbridge most lokalny

08e0da91f6de geekflare_network most lokalny

f51d1f3379e0 host host lokalny

ppp8i7tvrxa0 ingress overlay rój

ba68f73abeed mean-app_default bridge lokalny

d466e75d86fa mean_default bridge lokalny

5e5d9a192c00 brak lokalny null

Teraz uruchomię kontener dokerów w sieci, którą utworzyłem. Korzystam z prostego kontenera serwera Apache w poniższym poleceniu.

[chroniony e-mailem]: ~ $ docker run -it -d –network = geekflare_network httpd

38a0b0646da1a0045afcf7aa0cd6228b851f74107a6718bb19d599e896df1002

Uruchamianie polecenia inspekcji w celu sprawdzenia wszystkich informacji dotyczących geekflare_network. Tym razem możesz znaleźć szczegóły kontenera w tym inspekcji danych wyjściowych; nazwa kontenera to określony_dubiński.

[chroniony e-mailem]: ~ $ sieć dokerów inspekcja geekflare_network

[

{

"Imię": "geekflare_network",

"ID": "08e0da91f6de6c640b1b6f8a8602973f310b8ee9b04961389b7dfda842ccc409",

"Utworzony": "2019-09-03T13: 56: 36.244295204-04: 00",

"Zakres": "lokalny",

"Kierowca": "most",

"Włącz IPv6": fałszywe,

"IPAM": {

"Kierowca": "domyślna",

"Opcje": {},

"Config": [

{

"Podsieć": "172.21.0.0/16",

"Przejście": "172.21.0.1"

}

]

},

"Wewnętrzny": fałszywe,

"Dołączalny": fałszywe,

"Ingres": fałszywe,

"ConfigFrom": {

"Sieć": ""

},

"ConfigOnly": fałszywe,

"Pojemniki": {

"38a0b0646da1a0045afcf7aa0cd6228b851f74107a6718bb19d599e896df1002": {

"Imię": "określony_dubiński",

"EndpointID": "30d252720e0f381ba01d6f5414525dff8587abcf3c4920100f112898a52c8a23",

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

"Adres IPv4": "172.21.0.2/16",

"Adres IPv6": ""

}

},

"Opcje": {},

"Etykiety": {}

}

]

Odłącz sieć

Aby odłączyć sieć od kontenera, uruchom poniższe polecenie. Musisz podać nazwę sieci i nazwę kontenera w poleceniu rozłączenia.

[chroniony e-mailem]: ~ $ doker sieci rozłącz sieć geekflare_network określono_dubiński

W tej sieci nie będzie już działał określony_dubiński kontener; pole kontenera będzie puste.

[chroniony e-mailem]: ~ $ sieć dokerów inspekcja geekflare_network

[

{

"Imię": "geekflare_network",

"ID": "08e0da91f6de6c640b1b6f8a8602973f310b8ee9b04961389b7dfda842ccc409",

"Utworzony": "2019-09-03T13: 56: 36.244295204-04: 00",

"Zakres": "lokalny",

"Kierowca": "most",

"Włącz IPv6": fałszywe,

"IPAM": {

"Kierowca": "domyślna",

"Opcje": {},

"Config": [

{

"Podsieć": "172.21.0.0/16",

"Przejście": "172.21.0.1"

}

]

},

"Wewnętrzny": fałszywe,

"Dołączalny": fałszywe,

"Ingres": fałszywe,

"ConfigFrom": {

"Sieć": ""

},

"ConfigOnly": fałszywe,

"Pojemniki": {},

"Opcje": {},

"Etykiety": {}

}

]

Aby utworzyć sieć inną niż most, musisz podać nazwę sterownika inną niż most. Aby utworzyć sieć nakładek, uruchom poniższe polecenie.

[chroniony e-mailem]: ~ $ sieć dokerów utwórz – nakładka na sterownik geekflare_network_2

ynd2858eu1cngwhpc40m3h1nx

[chroniony e-mailem]: ~ $ sieć dokerów ls

NAZWA ID SIECI ZAKRES STEROWNIKA

fec751a6ae21 most most lokalny

21943b20735d docker_gwbridge most lokalny

08e0da91f6de geekflare_network most lokalny

f51d1f3379e0 host host lokalny

ppp8i7tvrxa0 ingress overlay rój

ba68f73abeed mean-app_default bridge lokalny

d466e75d86fa mean_default bridge lokalny

5e5d9a192c00 brak lokalny null

ynd2858eu1cn geekflare_network_2 nakładka rój

Aby utworzyć sieć hosta, wspomnij o hoście z flagą –driver. Poniższy przykład zwraca błąd, ponieważ dozwolona jest tylko jedna instancja sieci hosta, która już działała wcześniej. To polecenie nie spowoduje utworzenia innej sieci hosta.

[chroniony e-mailem]: ~ $ sieć dokerów utwórz –driver host geekflare_network_3

Odpowiedź błędu z demona: tylko jedno wystąpienie "gospodarz" sieć jest dozwolona

Wniosek

To wszystko dotyczyło sieci dokerów i tego, jak można łączyć, rozłączać, tworzyć i sprawdzać sieci dokerów. Wypróbuj te polecenia, aby zapoznać się z siecią Docket. Jeśli jesteś zainteresowany nauką Net Devops, sprawdź to Kurs Udemy.

TAGI:

  • Doker

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Комментариев нет, будьте первым кто его оставит

    Комментарии закрыты.

    Adblock
    detector