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.
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.
- 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.
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.
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 |