Freigeben über


Windows-Containernetzwerk

Gilt für: Windows Server 2022, Windows Server 2019, Windows Server 2016

Wichtig

Verweisen Sie auf Docker-Containernetzwerke für allgemeine Docker-Netzwerkbefehle, -Optionen und -Syntax. Mit Ausnahme aller Fälle, die in nicht unterstützten Features und Netzwerkoptionen beschrieben werden, werden alle Docker-Netzwerkbefehle unter Windows mit der gleichen Syntax wie unter Linux unterstützt. Die Windows- und Linux-Netzwerkstapel unterscheiden sich jedoch, und Sie werden feststellen, dass einige Linux-Netzwerkbefehle (z ifconfig. B. ) unter Windows nicht unterstützt werden.

Grundlegende Netzwerkarchitektur

Dieses Thema enthält eine Übersicht darüber, wie Docker Hostnetzwerke unter Windows erstellt und verwaltet. Windows-Container funktionieren ähnlich wie virtuelle Computer in Bezug auf Netzwerke. Jeder Container verfügt über einen virtuellen Netzwerkadapter (vNIC). der mit einem virtuellen Hyper-V-Switch (vSwitch) verbunden ist. Windows unterstützt fünf verschiedene Netzwerktreiber oder Modi , die über Docker erstellt werden können: nat, overlay, transparent, l2bridge und l2tunnel. Sie sollten den Netzwerktreiber auswählen, der Ihren Bedürfnissen im Hinblick auf Ihre physische Netzwerkinfrastruktur und die Netzwerkanforderungen (Netzwerk mit einem oder mehreren Hosts) am besten gerecht wird.

Veranschaulicht den Windows-Netzwerkstapel

Wenn das Docker-Modul zum ersten Mal ausgeführt wird, wird ein NAT-Standardnetzwerk erstellt, das einen internen vSwitch und eine Windows-Komponente namens verwendet WinNAT. Wenn bereits vorhandene externe vSwitches auf dem Host vorhanden sind, die über PowerShell oder Hyper-V-Manager erstellt wurden, sind sie auch für Docker mit dem transparenten Netzwerktreiber verfügbar und können angezeigt werden, wenn Sie den docker network ls Befehl ausführen.

Veranschaulicht den PowerShell-Befehl

  • Ein interner vSwitch ist einer, der nicht direkt mit einem Netzwerkadapter auf dem Containerhost verbunden ist.
  • Ein externer vSwitch ist einer, der direkt mit einem Netzwerkadapter auf dem Containerhost verbunden ist.

Veranschaulicht den PowerShell-Befehl

Das Nat-Netzwerk ist das Standardnetzwerk für Container, die unter Windows ausgeführt werden. Alle Container, die unter Windows ohne Kennzeichnungen oder Argumente ausgeführt werden, um bestimmte Netzwerkkonfigurationen zu implementieren, werden an das standardmäßige Nat-Netzwerk angefügt und automatisch eine IP-Adresse aus dem internen IP-Präfix-IP-Bereich des "nat"-Netzwerks zugewiesen. Das für "nat" verwendete interne IP-Präfix ist 172.16.0.0/16.

Containernetzwerkverwaltung mit Hostnetzwerkdienst

Der Host Networking Service (HNS) und der Host Compute Service (HCS) arbeiten zusammen, um Container zu erstellen und Endpunkte an ein Netzwerk anzufügen. Sie können mit HNS über das HNS Powershell-Hilfsmodul interagieren.

Netzwerkerstellung

  • HNS erstellt einen virtuellen Hyper-V-Switch für jedes Netzwerk.
  • HNS erstellt NAT- und IP-Pools nach Bedarf

Endpunkterstellung

  • HNS erstellt Netzwerknamespace pro Containerendpunkt
  • HNS/HCS platziert v(m)NIC im Netzwerknamespace
  • HNS erstellt (vSwitch)-Ports
  • HNS weist dem Endpunkt IP-Adresse, DNS-Informationen, Routen usw. zu (vorbehaltlich des Netzwerkmodus)

Richtlinienerstellung

  • Für das NAT-Standardnetzwerk (Network Address Translation) erstellt HNS die WinNAT-Portweiterleitungsregeln und Zuordnungen mit den entsprechenden Windows Firewall ALLOW-Regeln.
  • Für alle anderen Netzwerke verwendet HNS die virtuelle Filterplattform (Virtual Filtering Platform, VFP) für die Richtlinienerstellung, einschließlich Lastenausgleich, ACLs und Kapselung. Weitere Informationen zu HNS-APIs und dem Schema finden Sie unter Host Compute Network (HCN)-Dienst-API für VMs und Container.

Veranschaulicht den HNS-Verwaltungsstapel

Nicht unterstützte Features und Netzwerkoptionen

Die folgenden Netzwerkoptionen werden derzeit unter Windows NICHT unterstützt:

  • Ab Windows Server 2022 unterstützen Windows-Container die folgenden IPv6-Netzwerke:
    • Container, die an l2bridge-Netzwerke angeschlossen sind, unterstützen den IPv6-Stapel.
    • Container, die an transparente Netzwerke angeschlossen sind, unterstützen die Kommunikation mithilfe von IPv6 mit selbst zugewiesenen IP-Adressen, haben jedoch keine Unterstützung für HNS bereitgestellte IP-Adresszuweisung und andere Netzwerkdienste wie Lastenausgleich und ACLs.
  • Windows-Container, die an NAT- und Überlagerungsnetzwerke angefügt sind, unterstützen die Kommunikation über den IPv6-Stapel nicht.
  • Verschlüsselte Containerkommunikation über IPsec.
  • Hostmodus-Netzwerk .
  • Netzwerk in virtualisierter Azure-Infrastruktur über den transparenten Netzwerktreiber.
Get-Help Option "Nicht unterstützt"
docker run --ip6, --dns-option
docker network create --aux-address, , --internal--ip-range, --ipam-driver, --ipam-opt, , --ipv6--opt encrypted