docker集装箱可以连接到SRIOV虚拟function吗?

使用现有的支持SR-IOV的NIC是非常棒的。 我想了解,如果一个docker集装箱可以连接到虚拟function,使他们通过NIC硬件桥(而不是虚拟docker0桥)进行通信。

更具体地说,考虑这种情况:
容器A连接到VF#1
容器B连接到VF#2

A和B连接在一起,当它们交换数据时,它应该发生在NIC(而不是docker0)上的硬件网桥上。

在Docker中是否支持上述方法?

如果没有,pipe道工可以帮忙吗? (我听说pipe道可以做很棒的事情)

例子会非常有帮助。

那么,我认为pipe道脚本中的一些修改可以让我们将VF添加到容器中。 以这种方式设置的容器能够相互ping通,而无需创buildmacvlan子接口或软件桥接。 这表示适配器中的硬件网桥正在为它们进行L2交换。

pipe道的变化基本上是这样的:

[ "$IFTYPE" = phys ] && { [ "$VLAN" ] && { [ ! -d "/sys/class/net/${IFNAME}.${VLAN}" ] && { ip link add link "$IFNAME" name "$IFNAME.$VLAN" mtu "$MTU" type vlan id "$VLAN" } ip link set "$IFNAME" up IFNAME=$IFNAME.$VLAN } # Let's not create the macvlan subinterface # GUEST_IFNAME=ph$NSPID$CONTAINER_IFNAME # ip link add link "$IFNAME" dev "$GUEST_IFNAME" mtu "$MTU" type macvlan mode bridge GUEST_IFNAME=$IFNAME ip link set "$IFNAME" up } ip link set "$GUEST_IFNAME" netns "$NSPID" ip netns exec "$NSPID" ip link set "$GUEST_IFNAME" name "$CONTAINER_IFNAME" --- 

另外一个更好的方法是添加一个新的参数(“ – direct-attach”或其他)到脚本来处理指定的接口