Windows 容器網路

重要

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

基本網路架構

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

文字

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

文字

  • 內部vSwitch 是指未直接連線到容器主機上的網路介面卡的情況。
  • 外部vSwitch 是直接連接至容器主機上的網路介面卡的一個。

文字

'nat' 網路是在 Windows 上執行的容器的預設網路。 任何容器如果在 Windows 上執行,但沒有任何旗標或引數實作特定網路組態,其將會連接到預設的 'nat' 網路,且系統會自動從 'nat' 網路的內部首碼 IP 範圍指派 IP 位址給容器。 用於 'nat' 的預設內部 IP 首碼為 172.16.0.0/16。

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

主機網路服務 (HNS) 和主機運算服務 (HCS) 共同建立容器,並將端點連接至網路。

建立網路

  • 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 和結構描述。

文字

不支援的功能和網路選項

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

  • 附加至 l2bridge、NAT 及重迭網路的 Windows 容器不支援經由 IPv6 堆疊進行通訊。
  • 經 IPsec 加密的容器通訊。
  • 容器的 HTTP proxy 支援。
  • 將端點附加至在 Hyper-v 隔離中執行 (熱載入)。
  • 透過透明網路驅動程式在虛擬 Azure 基礎結構上進行網路連接。
命令 不支援的選項
docker run --ip6, --dns-option
docker network create --aux-address, --internal, --ip-range, --ipam-driver, --ipam-opt, --ipv6, --opt encrypted