共用方式為


Windows 容器的網路功能

適用於:Windows Server 2022、Windows Server 2019、Windows Server 2016

重要

如需一般 Docker 網路命令、選項和語法,請參閱 Docker 容器網路 功能。 除了不支援的功能和網路選項中所述的任何案例之外,Windows 上所有 Docker 網路命令都支援與 Linux 上相同的語法。 不過,Windows 和 Linux 網路堆疊不同,因此您會發現 Windows 上不支援某些 Linux 網路命令(例如, ifconfig)。

基本網路架構

本主題提供 Docker 如何在 Windows 上建立和管理主機網路的概觀。 Windows 容器在網路方面的運作方式與虛擬機類似。 每個容器都有一張虛擬網路介面卡(vNIC),其已連線至 Hyper-V 虛擬交換器(vSwitch)。 Windows 支援五種不同的 網路驅動程式或模式 ,可透過 Docker 建立: natoverlaytransparentl2bridgel2tunnel。 根據您的實體網路基礎結構和單一主機與多主機網路需求,您應該選擇最符合您需求的網路驅動程式。

說明 Windows 網路堆疊

第一次執行 Docker 引擎時,它會建立預設 NAT 網路 'nat',它會使用內部 vSwitch 和名為 WinNAT的 Windows 元件。 如果主機上有任何預先存在的外部 vSwitch 是透過 PowerShell 或 Hyper-V 管理員所建立的,它們也可以使用透明網路驅動程式供 Docker 使用,並在您執行docker network ls命令時看到。

說明 Docker 網路 ls PowerShell 命令

  • 內部 vSwitch 是未直接連線到容器主機上網路適配器的內部 vSwitch。
  • 外部 vSwitch 是直接連線到容器主機上網路適配器的 vSwitch。

說明 Get-VMSwitch PowerShell 命令

'nat' 網络是 Windows 上執行之容器的默認網路。 在 Windows 上執行且沒有任何旗標或自變數來實作特定網路設定的任何容器,都會附加至預設的 'nat' 網络,並自動從 'nat' 網络的內部前綴 IP 範圍指派 IP 位址。 用於 『nat』 的預設內部 IP 前置綴是 172.16.0.0/16。

使用主機網路服務的容器網路管理

主機網路服務 (HNS) 和主機計算服務 (HCS) 會一起運作,以建立容器,並將端點連結至網路。 您可以透過 HNS Powershell 協助程式模組與 HNS 互動。

網路建立

  • HNS 會為每個網路建立 Hyper-V 虛擬交換器
  • HNS 會視需要建立 NAT 和IP集區

端點建立

  • HNS 會為每個容器端點建立網路命名空間
  • HNS/HCS 會將 v(m)NIC 放在網路命名空間內
  • HNS 建立 (vSwitch) 埠
  • HNS 會將IP位址、DNS資訊、路由等(受限於網路模式)指派給端點

原則建立

  • 針對預設網路位址轉換 (NAT) 網路,HNS 會使用對應的 Windows 防火牆允許規則建立 WinNAT 埠轉送規則和對應。
  • 對於所有其他網路,HNS 會利用虛擬篩選平臺 (VFP) 來建立原則,包括負載平衡、ACL 和封裝。 如需 HNS API 和架構的詳細資訊,請參閱 VM 和容器的主機計算網路 (HCN) 服務 API。

說明 HNS 管理堆疊

不支援的功能和網路選項

Windows 目前 不支援 下列網路選項:

  • 從 Windows Server 2022 起,Windows 容器支援下列 IPv6 網路功能:
    • 連結至 l2bridge 網路的容器支援 IPv6 堆棧。
    • 連結至透明網路的容器支援使用 IPv6 搭配自我指派 IP 位址的通訊,但不支援 HNS 提供的 IP 位址指派和其他網路服務,例如負載平衡和 ACL。
  • 連結至 NAT 和重疊網路的 Windows 容器不支援透過 IPv6 堆棧進行通訊。
  • 透過 IPsec 加密的容器通訊。
  • 主機模式 網路。
  • 透過透明網路驅動程式在虛擬化 Azure 基礎結構上進行網路功能。
Command 不支援的選項
docker run --ip6, --dns-option
docker network create --aux-address--internal、、--ipam-driver--ip-range--ipam-opt、、、 --ipv6--opt encrypted