Condividi tramite


Rete di contenitori di Windows

Si applica a: Windows Server 2022, Windows Server 2019, Windows Server 2016

Importante

Fare riferimento a Docker Container Networking per comandi di rete Docker generali, opzioni e sintassi. Ad eccezione di eventuali casi descritti in funzionalità e opzioni di rete non supportate, tutti i comandi di rete Docker sono supportati in Windows con la stessa sintassi di in Linux. Tuttavia, gli stack di rete Windows e Linux sono diversi e, come tale, si noterà che alcuni comandi di rete Linux (ad esempio, ifconfig) non sono supportati in Windows.

Architettura di rete di base

Questo argomento offre una panoramica del modo in cui Docker crea e gestisce le reti host in Windows. I contenitori di Windows funzionano in modo analogo alle macchine virtuali per quanto riguarda la rete. Ogni contenitore ha una scheda di rete virtuale (vNIC) che è connessa a un commutatore virtuale (vSwitch) Hyper-V. Windows supporta cinque diversi driver di rete o modalità che possono essere creati tramite Docker: nat, sovrimpressione, trasparente, l2bridge e l2tunnel. A seconda dell'infrastruttura della rete fisica e dei requisiti della rete host singolo o multihosting, scegli il driver di rete più adatto alle tue esigenze.

Illustra lo stack di rete di Windows

La prima esecuzione del motore Docker creerà una rete NAT predefinita, 'nat', che usa un vSwitch interno e un componente Windows denominato WinNAT. Se nell'host sono presenti vSwitches esterne preesistenti che sono state create tramite PowerShell o Hyper-V Manager, saranno disponibili anche per Docker usando il driver di rete trasparente e possono essere visualizzate quando si esegue il docker network ls comando.

Illustra il comando Docker network ls PowerShell

  • Un vSwitch interno è uno che non è direttamente connesso a una scheda di rete nell'host del contenitore.
  • Un vSwitch esterno è uno che è direttamente connesso a una scheda di rete nell'host del contenitore.

Illustra il comando di PowerShell Get-VMSwitch

La rete "nat" è la rete predefinita per i contenitori in esecuzione in Windows. Qualsiasi contenitore eseguito in Windows senza contrassegni o argomenti per implementare specifiche configurazioni di rete verrà collegato alla rete "nat" predefinita e gli verrà assegnato automaticamente un indirizzo IP dall'intervallo di IP con prefisso interno della rete "nat'. Il prefisso IP predefinito interno utilizzato per "nat" è 172.16.0.0/16.

Gestione della rete di contenitori con il servizio rete host

Il servizio di rete host (HNS) e il servizio di calcolo host (HCS) interagiscono per creare contenitori e collegare endpoint a una rete. È possibile interagire con HNS tramite il modulo helper di PowerShell HNS.

Creazione di una rete

  • HNS crea un commutatore virtuale Hyper-V per ogni rete
  • HNS crea pool NAT e IP in base alle esigenze

Creazione dell'endpoint

  • HNS crea spazio dei nomi di rete per endpoint contenitore
  • HNS/HCS inserisce v(m)NIC all'interno dello spazio dei nomi di rete
  • HNS crea porte (vSwitch)
  • HNS assegna indirizzo IP, informazioni DNS, route e così via. (soggetto alla modalità di rete) all'endpoint

Creazione di criteri

  • Per la rete NAT (Network Address Translation) predefinita, HNS crea le regole di inoltro delle porte WinNAT e i mapping con le regole ALLOW di Windows Firewall corrispondenti.
  • Per tutte le altre reti, HNS usa la piattaforma VFP (Virtual Filtering Platform) per la creazione di criteri che include bilanciamento del carico, elenchi di controllo di accesso e incapsulamento. Per altre informazioni sulle API HNS e sullo schema, vedere API del servizio HCN (Host Compute Network) per macchine virtuali e contenitori.

Illustra lo stack di gestione HNS

Opzioni di rete e funzionalità non supportate

Le opzioni di rete seguenti non sono attualmente supportate in Windows:

  • A partire da Windows Server 2022, i contenitori Windows collegati alle reti l2bridge supportano lo stack IPv6. Tuttavia, i contenitori Windows collegati alle reti NAT e sovrimpressione non supportano la comunicazione sullo stack IPv6.
  • Comunicazione del contenitore crittografata tramite IPsec.
  • Rete in modalità host .
  • Rete nell'infrastruttura di Azure virtualizzata tramite il driver di rete trasparente.
Comando Opzione non supportata
docker run --ip6, --dns-option
docker network create --aux-address, --internal, --ip-range, --ipam-driver, --ipam-opt, --ipv6, --opt encrypted