Windows-containernätverk
Gäller för: Windows Server 2025, Windows Server 2022, Windows Server 2019, Windows Server 2016
Viktig
Vänligen se Docker Container Networking för allmänna Docker-nätverkskommandon, alternativ och syntax. Med undantag för fall som beskrivs i funktioner och nätverksalternativ som inte stödsstöds alla Docker-nätverkskommandon i Windows med samma syntax som i Linux. Windows- och Linux-nätverksstackarna skiljer sig dock åt, och därför ser du att vissa Linux-nätverkskommandon (till exempel ifconfig
) inte stöds i Windows.
Grundläggande nätverksarkitektur
Det här avsnittet innehåller en översikt över hur Docker skapar och hanterar värdnätverk i Windows. Windows-containrar fungerar på samma sätt som virtuella datorer när det gäller nätverk. Varje container har ett virtuellt nätverkskort (vNIC) som är anslutet till en Hyper-V virtuell växel (vSwitch). Windows stöder fem olika nätverksdrivrutiner eller lägen som kan skapas via Docker: nat, överlägg, transparent, l2bridgeoch l2tunnel. Beroende på din fysiska nätverksinfrastruktur och krav på nätverk mellan en och flera värdar bör du välja den nätverksdrivrutin som bäst passar dina behov.
Första gången Docker Engine körs skapar den ett NAT-standardnätverk, "nat", som använder en intern vSwitch och en Windows-komponent med namnet WinNAT
. Om det finns några befintliga externa vSwitches på värden som har skapats via PowerShell eller Hyper-V Manager, kommer de också att vara tillgängliga för Docker med hjälp av transparent nätverksdrivrutin och kan visas när du kör kommandot docker network ls
.
- En intern vSwitch är en typ som inte är direkt ansluten till ett nätverkskort på en containerhost.
- En extern vSwitch är en som är direkt ansluten till ett nätverkskort på värddatorn för containern.
Nat-nätverket är standardnätverket för containrar som körs i Windows. Alla containrar som körs i Windows utan flaggor eller argument för att implementera specifika nätverkskonfigurationer kopplas till standardnätverket "nat" och tilldelas automatiskt en IP-adress från "nat"-nätverkets interna prefix-IP-intervall. Standardprefixet för intern IP som används för "nat" är 172.16.0.0/16.
Hantering av containernätverk med värdnätverkstjänst
Värdnätverkstjänsten (HNS) och HCS (Host Compute Service) arbetar tillsammans för att skapa containrar och koppla slutpunkter till ett nätverk. Du kan interagera med HNS via HNS Powershell-hjälpmodulen.
Skapa nätverk
- HNS skapar en Hyper-V virtuell växel för varje nätverk
- HNS skapar NAT- och IP-pooler efter behov
Skapa slutpunkt
- HNS skapar nätverksnamnområde per containerslutpunkt
- HNS/HCS placerar v(m)NIC i nätverkets namnområde
- HNS skapar portar (vSwitch)
- HNS tilldelar IP-adress, DNS-information, vägar osv. (beroende på nätverksläge) till slutpunkten
Skapa princip
- För standardnätverket för NAT skapar HNS WinNAT-portvidarebefordringsregler och mappningar tillsammans med motsvarande tillåt-regler för Windows-brandväggen.
- För alla andra nätverk använder HNS VFP (Virtual Filtering Platform) för att skapa principer som omfattar belastningsutjämning, ACL:er och inkapsling. Mer information om HNS-API:er och schemat finns i API för värdberäkningsnätverk (HCN) för virtuella datorer och containrar.
Funktioner och nätverksalternativ som inte stöds
Följande nätverksalternativ stöds för närvarande INTE i Windows:
- Från Windows Server 2022 och senare har Windows-containrar följande stöd för IPv6-nätverk:
- Containrar som är anslutna till l2bridge-nätverk stöder IPv6-stacken.
- Containrar som är anslutna till transparenta nätverk stöder kommunikation med IPv6 med självtilldelade IP-adresser, men har inte stöd för HNS-angivna IP-adresstilldelningar och andra nätverkstjänster som belastningsutjämning och ACL:er.
- Windows-containrar som är anslutna till NAT- och överläggsnätverk stöder inte kommunikation via IPv6-stacken.
- Krypterad containerkommunikation via IPsec.
- värdläge nätverk.
- Nätverkande på virtualiserad Azure-infrastruktur via den transparenta nätverksdrivrutinen.
Befallning | Alternativet stöds inte |
---|---|
docker run |
--ip6 , --dns-option |
docker network create |
--aux-address , --internal , --ip-range , --ipam-driver , --ipam-opt , --ipv6 , --opt encrypted |