Docker quatro modos de rede

Docker quatro modos de rede

Prefácio

  • O Docker usa a ponte do Linux e virtualiza uma ponte de contêiner do Docker (docker0) na máquina host.Quando o Docker inicia um contêiner, ele atribui um endereço IP ao contêiner de acordo com o segmento de rede da ponte do Docker. Gateway padrão para cada contêiner. Como os contêineres no mesmo host estão todos conectados à mesma ponte de rede, para que os contêineres possam se comunicar diretamente através do IP do contêiner do contêiner.
  • A ponte do Docker é virtualizada pelo host e não é um dispositivo de rede real. A rede externa não pode ser endereçada, o que também significa que a rede externa não pode acessar o contêiner através do IP do contêiner direto. Se o contêiner desejar acesso externo, você pode mapear a porta do contêiner para o host (mapeamento de porta), ou seja, a execução do docker é ativada pelo parâmetro -p ou -P ao criar o contêiner e o [IP do host] ao acessar o contêiner: [Porta do contêiner] Acesse o contêiner.

1. Quatro modos de rede

modo de rede docker Configuração Explicação
modo host –Net = host O contêiner e o host compartilham o namespace de rede.
modo contêiner –Net = contêiner: NAME_or_ID O contêiner e outro contêiner compartilham o namespace de rede. Os pods nos kubernetes são vários contêineres que compartilham um espaço para nome de rede.
modo nenhum –Net = nenhum O contêiner possui um namespace de rede independente, mas não possui configurações de rede, como atribuir conexão de par e ponte veth, configurar IP etc.
modo ponte –Net = ponte (O padrão é este modo)

2. modo host

  • Se o modo host for usado quando o contêiner for iniciado, o contêiner não obterá um espaço para nome de rede independente, mas compartilhará um espaço para nome de rede com o host. O contêiner não virtualiza sua própria placa de rede, configura seu próprio IP etc., mas usa o IP e a porta do host. No entanto, outros aspectos do contêiner, como o sistema de arquivos e a lista de processos, ainda são isolados do host.
  • Os contêineres que usam o modo host podem usar diretamente o endereço IP do host para se comunicar com o mundo externo.A porta de serviço dentro do contêiner também pode usar a porta do host. Não é necessário NAT. A maior vantagem do host é que o desempenho da rede é melhor, mas o host do docker já As portas usadas não podem mais ser usadas e o isolamento da rede não é bom.

Insira a descrição da imagem aqui

3. modo contêiner

  • Este modo especifica que o contêiner recém-criado compartilha um Namespace de Rede com um contêiner existente, em vez do host. O contêiner recém-criado não criará sua própria placa de rede e configurará seu próprio IP, mas compartilhará o intervalo de IP e porta com um contêiner especificado. Da mesma forma, além da rede, os dois contêineres, como o sistema de arquivos e a lista de processos, são isolados. Os processos dos dois contêineres podem se comunicar através do dispositivo de placa de rede lo.

Insira a descrição da imagem aqui

4. modo nenhum

  • Com nenhum modo, o contêiner do Docker possui seu próprio espaço para nome de rede, mas não executa nenhuma configuração de rede para o contêiner do Docker. Em outras palavras, esse contêiner do Docker não possui placa de rede, IP, roteamento e outras informações. Precisamos adicionar placas de rede e configurar o IP para contêineres do Docker.
  • Nesse modo de rede, o contêiner possui apenas uma rede de loopback baixo e nenhuma outra placa de rede. O modo nenhum pode ser especificado por –network = none quando o contêiner é criado. Não há como conectar esse tipo de rede, e uma rede fechada pode garantir a segurança do contêiner.

Insira a descrição da imagem aqui

5. modo de ponte

  • Quando o processo do Docker for iniciado, uma ponte virtual denominada docker0 será criada no host e o contêiner do Docker iniciado neste host será conectado a essa ponte virtual. As pontes virtuais funcionam de maneira semelhante aos comutadores físicos, para que todos os contêineres no host sejam conectados a uma rede da Camada 2 através do comutador.
  • Atribua um IP da sub-rede docker0 ao contêiner e defina o endereço IP do docker0 como o gateway padrão do contêiner. Crie um par de dispositivos de par de veth de placa de rede virtual no host.O Docker coloca uma extremidade do dispositivo de par de veth no contêiner recém-criado e o nomeia eth0 (placa de rede do contêiner), e a outra extremidade é colocada no host com um nome semelhante como vethxxx Nomeie-o e adicione este dispositivo de rede à ponte docker0. Pode ser visualizado através do comando brctl show.
  • O modo de ponte é o modo de rede padrão da janela de encaixe.Se você não escrever o parâmetro –net, é o modo de ponte. Ao usar o docker run -p, o docker realmente criou regras DNAT no iptables para implementar a função de encaminhamento de porta. Você pode usar o iptables -t nat -vnL para visualizar.

Insira a descrição da imagem aqui

Publicado 140 artigos originais · 49 elogios · 10.000+ visualizações

Acho que você gosta

Origin blog.csdn.net/double_happy111/article/details/105579483
Recomendado
Clasificación