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