一、网络模式选择与配置
-
NAT模式:
- 默认网络模式,提供容器与外部网络通信能力
- 通过虚拟网卡实现,支持容器间和容器-主机通信
- 配置示例:
docker network create --driver=nat my_nat_network
-
透明网络模式:
- 容器直接使用主机网络栈,获得主机IP地址
- 适用于需要高性能网络吞吐的场景
- 启动命令:
docker run --network=transparent ...
-
L2桥接模式:
- 容器连接到虚拟交换机,形成独立广播域
- 支持VLAN隔离和QoS策略配置
- 创建命令:
docker network create -d l2bridge --subnet=192.168.100.0/24 my_bridge
二、高级网络功能配置
1. 网络带宽控制
- 通过PowerShell配置QoS策略限制容器带宽
- 示例:
New-NetQosPolicy -Name "ContainerLimit" -AppPathNameMatchCondition "docker.exe" -ThrottleRateActionBitsPerSecond 10MB
2. 出站NAT策略
- 在
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VfpExt\Parameters
配置出站NAT规则 - 支持基于源/目标IP和端口的精细控制
3. VLAN隔离
- 创建网络时指定VLAN ID:
docker network create -d transparent --subnet=192.168.1.0/24 --gateway=192.168.1.1 --opt com.docker.network.windowsshim.vlanid=100
- 支持多租户环境下的网络隔离
三、安全配置
-
ACL规则:
- 使用
Add-NetIPsecRule
配置容器网络访问控制列表 - 支持基于五元组(协议/源IP/源端口/目标IP/目标端口)的精细控制
- 使用
-
防火墙配置:
- 通过Windows防火墙高级安全控制台配置入站/出站规则
- 规则优先级:显式允许>默认阻止,显式阻止>任何允许规则
-
网络隔离:
- 使用
--network-isolation
参数限制容器网络可见性 - 支持基于命名空间的逻辑隔离
- 使用
四、性能优化技巧
-
SR-IOV支持:
- 在支持SR-IOV的网卡上启用直通模式
- 显著降低网络延迟,提高吞吐量
-
RSS配置:
- 启用接收端缩放(RSS)平衡多核CPU的网络负载
- 命令:
Set-NetAdapterRss -Name "Ethernet" -Enabled $true
-
TCP优化:
- 调整
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
注册表项 - 关键参数:TcpWindowSize、Tcp1323Opts、DefaultTTL
- 调整
五、诊断与监控
-
网络诊断工具:
- 使用
Get-ContainerNetwork
查看容器网络配置 Test-ContainerNetworkConnection
测试容器网络连通性
- 使用
-
性能计数器:
- 监控Hyper-V虚拟交换机计数器评估网络性能
- 关键指标:Packets/sec、Bytes/sec、Drop计数
-
日志收集:
- 启用HNS(主机网络服务)日志:
Start-Service HNS -Verbose
- 日志路径:
C:\Windows\System32\LogFiles\HNS
- 启用HNS(主机网络服务)日志:
通过以上配置可实现Windows容器网络的高性能、安全隔离和精细控制,建议根据实际应用场景选择合适的网络模式和配置组合。