Share via


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 gerais de rede, opções e sintaxe do Docker. Com exceção de quaisquer casos descritos em recursos sem suporte e opções de rede, todos os comandos de rede do Docker têm suporte no Windows com a mesma sintaxe que no 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 têm suporte no 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. 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 Mecanismo do Docker 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 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.

Ilustra o comando do PowerShell da rede do Docker ls

  • 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 PowerShell

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 de porta WinNAT e mapeamentos com as regras ALLOW do Firewall do 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 API de serviço de rede de computação de host (HCN) para VMs e contêineres.

Ilustra a pilha de gerenciamento de HNS

Opções de rede e recursos sem suporte

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

  • Do Windows Server 2022 em diante, os contêineres do Windows anexados a redes l2bridge dão suporte à pilha IPv6. No entanto, os contêineres do Windows anexados à NAT e às redes de sobreposição não dão suporte à comunicação pela pilha IPv6.
  • Comunicação de contêiner criptografada por meio do IPsec.
  • Rede de modo de 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