Rede de contêineres do Windows

Aplica-se a: Windows Server 2022, Windows Server 2019 e Windows Server 2016

Importante

Consulte a Rede de Contêiner do Docker para obter comandos, opções e sintaxe gerais de rede do Docker. Com exceção de todos os casos descritos em recursos e opções de rede sem suporte, todos os comandos de rede do Docker têm suporte no Windows com a mesma sintaxe do Linux. No entanto, as pilhas de rede do Windows e do Linux são diferentes e, como tal, você descobrirá que alguns comandos de rede do Linux (por exemplo, ifconfig) não são suportados no Windows.

Arquitetura básica de rede

Este tópico fornece uma visão geral de como o Docker cria e gerencia redes de host no Windows. Os contêineres do Windows funcionam de forma semelhante às máquinas virtuais em relação à rede. Cada contêiner tem um vNIC (adaptador de rede virtual) que é conectado a um vSwitch (comutador virtual) do Hyper-V. O Windows dá suporte a cinco drivers ou modos de rede diferentes que podem ser criados por meio do Docker: nat, overlay, transparent, l2bridge e l2tunnel. Dependendo de sua infraestrutura de rede física e dos requisitos de rede de host único ou multi-host, você deve escolher o driver de rede mais adequado às suas necessidades.

Ilustra a pilha de rede do Windows

Na primeira vez que o Docker Engine for executado, ele criará uma rede NAT padrão, 'nat', que usa um vSwitch interno e um componente do Windows chamado WinNAT. Se houver vSwitches externos pré-existentes no host que foram criados por meio do PowerShell ou do Hyper-V Manager, eles também estarão disponíveis para o Docker usando o driver de rede transparente e poderão ser vistos quando você executar o docker network ls comando.

Ilustra o comando ls do PowerShell da rede do Docker

  • Um vSwitch interno é aquele que não está conectado diretamente a um adaptador de rede no host do contêiner.
  • Um vSwitch externo é aquele que está conectado diretamente a um adaptador de rede no host do contêiner.

Ilustra o comando Get-VMSwitch do PowerShell

A rede 'nat' é a rede padrão para contêineres em execução no Windows. Todos os contêineres executados no Windows sem sinalizadores ou argumentos para implementar configurações de rede específicas serão anexados à rede 'nat' padrão e atribuídos automaticamente a um endereço IP do intervalo de IP de prefixo interno da rede 'nat'. O prefixo IP interno padrão usado para 'nat' é 172.16.0.0/16.

Gerenciamento de rede de contêiner com serviço de rede de host

O HNS (Serviço de Rede de Host) e o HCS (Serviço de Computação de Host) trabalham juntos para criar contêineres e anexar pontos de extremidade a uma rede. Você pode interagir com o HNS por meio do Módulo Auxiliar do Powershell do HNS.

Criação de rede

  • O HNS cria um comutador virtual Hyper-V para cada rede
  • O HNS cria pools de NAT e IP conforme necessário

Criação de endpoint

  • O HNS cria namespace de rede por ponto de extremidade de contêiner
  • O HNS/HCS coloca o v(m)NIC dentro do namespace da rede
  • O HNS cria portas (vSwitch)
  • O HNS atribui endereço IP, informações de DNS, rotas, etc. (sujeito ao modo de rede) ao endpoint

Criação de política

  • Para a rede NAT (conversão de endereços de rede) padrão, o HNS cria as regras e mapeamentos de encaminhamento de porta WinNAT com as regras ALLOW correspondentes do Firewall do Windows.
  • Para todas as outras redes, o HNS utiliza a VFP (Virtual Filtering Platform) para a criação de políticas, que inclui balanceamento de carga, ACLs e encapsulamento. Para obter mais informações sobre APIs do HNS e o esquema, consulte API de serviço da HCN (Rede de Computação do Host) para VMs e contêineres.

Ilustra a pilha de gerenciamento do HNS

Recursos e opções de rede não suportados

No momento , as seguintes opções de rede NÃO são suportadas no Windows:

  • Do Windows Server 2022 em diante, os contêineres do Windows têm o seguinte suporte para rede IPv6:
    • Os contêineres conectados a redes l2bridge suportam a pilha IPv6.
    • Os contêineres conectados a redes transparentes dão suporte à comunicação usando IPv6 com endereços IP autoatribuídos, mas não têm suporte para atribuição de endereço IP fornecida pelo HNS e outros serviços de rede, como balanceamento de carga e ACLs.
  • Os contêineres do Windows anexados a redes NAT e de sobreposição não dão suporte à comunicação pela pilha IPv6.
  • Comunicação de contêiner criptografada via IPsec.
  • Rede no modo host.
  • Rede na infraestrutura virtualizada do Azure por meio do driver de rede transparente.
Comando Opção não suportada
docker run --ip6, --dns-option
docker network create --aux-address, --internal, --ip-range, --ipam-driver, --ipam-opt, --ipv6, , --opt encrypted