Rede de contêineres do Windows

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

Importante

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

Arquitetura de rede básica

Este tópico fornece uma visão geral de como o Docker cria e gerencia as redes de hosts no Windows. Função de contêineres do Windows da mesma forma para máquinas virtuais no que diz respeito à rede. Cada contêiner tem um vNIC (adaptador de rede virtual) que é conectado a um vSwitch (comutador virtual) do Hyper-V. Windows dá suporte a cinco diferentes drivers de rede ou modos que podem ser criados por meio do Docker: nat, sobreposição, 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.

Illustrates the Windows network stack

Na primeira vez que o mecanismo do Docker for executado, ele criará uma rede NAT padrão, 'nat', que usa um vSwitch interno e um componente Windows chamado WinNAT. Se houver vSwitches externos pré-existentes no host que foram criados por meio do PowerShell ou do Gerenciador do Hyper-V, 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.

Illustrates the Docker network ls PowerShell command

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

Illustrates the Get-VMSwitch PowerShell command

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

Gerenciamento de rede de contêineres com o Serviço de Rede Host

A figura abaixo mostra como o HNS (Serviço de Rede de Hosts) e o HCS (Serviço de Computação de Host) funcionam juntos para criar contêineres e conectar os pontos de extremidade a uma rede. Você pode interagir com o HNS por meio do Módulo Auxiliar do HNS Powershell.

Criação de rede

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

Criação de ponto de extremidade

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

Criação de política

  • Para a rede NAT (conversão de endereços de rede) padrão, o HNS cria as regras de encaminhamento e mapeamentos da porta WinNAT com as regras DE PERMISSÃO de firewall de Windows correspondentes.
  • Para todas as outras redes, o HNS utiliza a VFP (Plataforma de Filtragem Virtual) para criação de políticas que incluem balanceamento de carga, ACLs e encapsulamento. Para obter mais informações sobre APIs HNS e o esquema, consulte a API do serviço HCN (Host Compute Network) para VMs e contêineres.

Illustrates the HNS management stack

Opções de rede e recursos sem suporte

No momento, não há suporte para as seguintes opções de rede no Windows:

  • Do Windows Server 2022 em diante, Windows contêineres anexados a redes l2bridge dão suporte à pilha IPv6. No entanto, Windows contêineres anexados a NAT e redes de sobreposição não dão suporte à comunicação pela pilha IPv6.
  • Comunicação de contêiner criptografada via IPsec.
  • Rede do modo host .
  • Rede na infraestrutura virtualizada do Azure por meio do driver de rede transparente.
Comando Opção sem suporte
docker run --ip6, --dns-option
docker network create --aux-address, --internal, --ip-range, --ipam-driver, --ipam-opt, --ipv6, --opt encrypted