Dela via


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.

Illustrerar Windows-nätverksstacken

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.

illustrerar kommandot Docker network ls i PowerShell

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

illustrerar Get-VMSwitch PowerShell-kommandot

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.

Illustrerar HNS-hanteringsstacken

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