Rede Docker 101

Vamos aprender o Docker Networking ….


Existem principalmente cinco redes no docker – bridge, host, overlay, none e macvlan.

Rede em ponte é a rede padrão na janela de encaixe. Uma introdução a essas redes foi apresentada em meu artigo anterior sobre arquitetura de docker.

Neste artigo, mostrarei a parte prática da rede do docker. Você saberá como pode verificar os detalhes da rede do docker, como conectar-se a uma rede, como criar sua rede e muito mais. Então vamos começar.

Sempre que você executa um contêiner de docker, uma chamada de rede em ponte padrão docker0 é associado ao contêiner, a menos que outra rede seja especificada. Por exemplo, quando executo o comando ifconfig, você obtém os detalhes da rede docker0 do tipo bridge, além de outros detalhes da rede.

[protegido por email]: ~ $ ifconfig

docker0: flags = 4099 mtu 1500

máscara de rede inet 172.17.0.1 255.255.0.0 broadcast 172.17.255.255

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

Pacotes RX 0 bytes 0 (0,0 B)

Erros de RX 0 eliminados 0 excedem 0 quadros 0

Pacotes TX 0 bytes 0 (0,0 B)

Erros de TX 0 eliminados 0 excedentes 0 transportadora 0 colisões 0

enp0s3: flags = 4163 mtu 1500

inet 10.0.2.15 máscara de rede 255.255.255.0 broadcast 10.0.2.255

inet6 fe80 :: 763e: c0b4: 14df: prefixo b273 64 escopo 0x20

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

Pacotes RX 2157 bytes 2132896 (2,1 MB)

Erros de RX 0 eliminados 0 excedem 0 quadros 0

Pacotes TX 952 bytes 151610 (151,6 KB)

Erros de TX 0 eliminados 0 excedentes 0 transportadora 0 colisões 0

enp0s8: flags = 4163 mtu 1500

inet 192.168.56.102 máscara de rede 255.255.255.0 broadcast 192.168.56.255

inet6 fe80 :: 20a: 6c57: 839d: 2652 prefixo 64 escopo 0x20

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

Pacotes RX 10597 bytes 1497146 (1,4 MB)

Erros de RX 0 eliminados 0 excedem 0 quadros 0

Pacotes TX 12058 bytes 1730219 (1,7 MB)

Erros de TX 0 eliminados 0 excedentes 0 transportadora 0 colisões 0

lo: flags = 73 mtu 65536

inet 127.0.0.1 máscara de rede 255.0.0.0

inet6 :: 1 prefixo 128 escopo 0x10

loop txqueuelen 1000 (loopback local)

Pacotes RX 1196 bytes 105396 (105,3 KB)

Erros de RX 0 eliminados 0 excedem 0 quadros 0

Pacotes TX 1196 bytes 105396 (105,3 KB)

Erros de TX 0 eliminados 0 excedentes 0 transportadora 0 colisões 0

Rede de listagem

Execute o comando ls para verificar todas as redes em execução no host atual. Você pode ver, sete redes estão presentes atualmente, incluindo bridge, host e nenhuma, criada automaticamente quando você instala o Docker. Dependendo dos contêineres que eu executei no passado, há detalhes de outras redes personalizadas também.

[protegido por email]: ~ $ docker network ls

ESCOPO DO DRIVER DE NOME DA ID DA REDE

ponte ponte fec751a6ae21 local

21943b20735d docker_gwbridge bridge local

host do host f51d1f3379e0 local

ppp8i7tvrxa0 enxame de sobreposição de entrada

ba68f73abeed local da ponte mean-app_default

d466e75d86fa mean_default bridge local

5e5d9a192c00 nenhum nulo local

Inspecionando a rede

Você pode executar o comando inspecionar para obter todos os detalhes sobre um tipo de rede. Ele fornece informações sobre a rede, incluindo detalhes de Nome, ID, Hora de criação, Escopo, Driver, Configuração, como Sub-rede e Endereço do gateway. Também fornecerei detalhes do contêiner, se algum contêiner estiver em funcionamento. Caso contrário, ele retornará uma string vazia.

[protegido por email]: ~ $ docker network inspeciona ponte

[

{

"Nome": "ponte",

"Eu iria": "fec751a6ae21f20a06cdc6eb823e773caec063b6bf9a388016594e59fd1db475",

"Criada": "Por que você está reportando essa página?",

"Escopo": "local",

"Motorista": "ponte",

"EnableIPv6": false,

"IPAM": {

"Motorista": "padrão",

"Opções": nulo,

"Config": [

{

"Sub-rede": "172.17.0.0/16",

"Porta de entrada": "172.17.0.1"

}

]

},

"interno": false,

"Anexável": false,

"Entrada": false,

"ConfigFrom": {

"Rede": ""

},

"ConfigOnly": false,

"Recipientes": {},

"Opções": {

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

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

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

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

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

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

},

"Etiquetas": {}

}

]

Criar Rede

Usando o comando create, você pode criar sua própria rede. Você precisa mencionar o tipo de driver com o sinalizador –driver, no exemplo abaixo, estou usando o tipo de ponte.

[protegido por email]: ~ $ docker network create –driver bridge geekflare_network

08e0da91f6de6c640b1b6f8a8602973f310b8ee9b04961389b7dfda842ccc409

Execute o comando ls para verificar se a rede foi criada.

[protegido por email]: ~ $ docker network ls

ESCOPO DO DRIVER DE NOME DA ID DA REDE

ponte ponte fec751a6ae21 local

21943b20735d docker_gwbridge bridge local

08e0da91f6de ponte geekflare_network local

host do host f51d1f3379e0 local

ppp8i7tvrxa0 enxame de sobreposição de entrada

ba68f73abeed local da ponte mean-app_default

d466e75d86fa mean_default bridge local

5e5d9a192c00 nenhum nulo local

Agora vou executar um contêiner de docker na rede que criei. Estou executando um contêiner de servidor apache simples no comando abaixo.

[protegido por email]: ~ $ docker executa -it -d –network = geekflare_network httpd

38a0b0646da1a0045afcf7aa0cd6228b851f74107a6718bb19d599e896df1002

Executando o comando inspecionar para verificar todas as informações de geekflare_network. Você pode encontrar os detalhes do contêiner dessa vez nesta inspeção da saída; o nome do contêiner é determinado_dubinsky.

[protegido por email]: ~ $ docker network inspeciona geekflare_network

[

{

"Nome": "geekflare_network",

"Eu iria": "08e0da91f6de6c640b1b6f8a8602973f310b8ee9b04961389b7dfda842ccc409",

"Criada": "2019-05-03T13: 56: 36.244295204-04: 00",

"Escopo": "local",

"Motorista": "ponte",

"EnableIPv6": false,

"IPAM": {

"Motorista": "padrão",

"Opções": {},

"Config": [

{

"Sub-rede": "172.21.0.0/16",

"Porta de entrada": "172.21.0.1"

}

]

},

"interno": false,

"Anexável": false,

"Entrada": false,

"ConfigFrom": {

"Rede": ""

},

"ConfigOnly": false,

"Recipientes": {

"38a0b0646da1a0045afcf7aa0cd6228b851f74107a6718bb19d599e896df1002": {

"Nome": "determinado_dubinsky",

"EndpointID": "30d252720e0f381ba01d6f5414525dff8587abcf3c4920100f112898a52c8a23",

"Endereço MAC": "02: 42: ac: 15: 00: 02",

"Endereço IPv4": "172.21.0.2/16",

"Endereço IPv6": ""

}

},

"Opções": {},

"Etiquetas": {}

}

]

Desconectar rede

Para desconectar a rede do contêiner, execute o comando abaixo. Você precisa mencionar o nome da rede e o nome do contêiner no comando desconectar.

[protegido por email]: ~ $ docker network desconecte geekflare_network determinado_dubinsky

Esta rede não estará mais executando o contêiner determinado_dubinsky; o campo do contêiner estará vazio.

[protegido por email]: ~ $ docker network inspeciona geekflare_network

[

{

"Nome": "geekflare_network",

"Eu iria": "08e0da91f6de6c640b1b6f8a8602973f310b8ee9b04961389b7dfda842ccc409",

"Criada": "2019-05-03T13: 56: 36.244295204-04: 00",

"Escopo": "local",

"Motorista": "ponte",

"EnableIPv6": false,

"IPAM": {

"Motorista": "padrão",

"Opções": {},

"Config": [

{

"Sub-rede": "172.21.0.0/16",

"Porta de entrada": "172.21.0.1"

}

]

},

"interno": false,

"Anexável": false,

"Entrada": false,

"ConfigFrom": {

"Rede": ""

},

"ConfigOnly": false,

"Recipientes": {},

"Opções": {},

"Etiquetas": {}

}

]

Para criar outra rede que não seja bridge, você precisa mencionar o nome do driver que não seja bridge. Para criar uma rede de sobreposição, execute o comando abaixo.

[protegido por email]: ~ $ docker network create –driver overlay geekflare_network_2

ynd2858eu1cngwhpc40m3h1nx

[protegido por email]: ~ $ docker network ls

ESCOPO DO DRIVER DE NOME DA ID DA REDE

ponte ponte fec751a6ae21 local

21943b20735d docker_gwbridge bridge local

08e0da91f6de ponte geekflare_network local

host do host f51d1f3379e0 local

ppp8i7tvrxa0 enxame de sobreposição de entrada

ba68f73abeed local da ponte mean-app_default

d466e75d86fa mean_default bridge local

5e5d9a192c00 nenhum nulo local

ynd2858eu1cn geekflare_network_2 swarm de sobreposição

Para criar uma rede host, mencione host com o sinalizador –driver. O exemplo abaixo retorna um erro porque apenas uma instância de rede host é permitida, que já estava em execução antes. Portanto, este comando não criará outra rede host.

[protegido por email]: ~ $ docker network create –driver host geekflare_network_3

Resposta de erro do daemon: apenas uma instância de "hospedeiro" rede é permitida

Conclusão

Isso era tudo sobre redes docker e como você pode conectar, desconectar, criar, inspecionar redes docker. Experimente estes comandos para se familiarizar com a rede Docket. Se você está curioso para aprender o Net Devops, confira este Curso Udemy.

TAG:

  • Docker

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