该网络插件允许Docker容器直接/直通访问原生以太网网络设备,提供两种操作模式:
在此模式下,指定的网络设备作为PCIe物理功能(PF)来定义网络。所有容器实例启动时将获得一个基于PCIe虚拟功能(VF)的网络设备。此模式利用网络设备的PCIe SRIOV功能,提供对实际PCIe网络设备的原生访问,无虚拟设备开销。每个容器可获得专用的NIC发送(Tx)和接收(Rx)队列,避免与其他容器的资源竞争。插件会自动处理SRIOV的启用/禁用及容器启动时VF设备的分配,减少管理开销。
在此模式下,指定的网络设备直接映射到容器。每个网络对应一个网络设备,因此每个容器会获得一个网络。适用于需直接映射绑定设备(bond bonded device)的场景,无需额外层且不消耗额外MAC地址。
两种模式均类似于KVM等虚拟化技术的直通模式。通过该插件创建的接口,容器网络设备与主机网络设备的IP子网无限制,容器可使用任意IP地址,与主机或其他容器的子网相同或不同。未来将添加更多网络设备和网络的配置选项。
以下说明介绍如何启动插件并使用。
确保使用Docker 1.9或更高版本。
bash$ docker pull mellanox/passthrough-plugin
bash$ docker run -v /run/docker/plugins:/run/docker/plugins -v /etc/docker:/etc/docker --net=host --privileged mellanox/passthrough-plugin
启动后容器会输出插件控制台日志,无需重启Docker引擎。网络配置将持久化到/etc/docker/mellanox目录。
4.1 创建网络
以下命令使用ens2f0作为PF网络设备,模式设为SRIOV,插件会自动为容器分配VF设备。容器与主机的子网可不同:
bash$ docker network create -d passthrough --subnet=194.168.1.0/24 -o netdevice=ens2f0 -o mode=sriov mynet
4.2 运行容器
bash$ docker run --net=mynet -itd --name=web nginx
4.3 SRIOV模式下的多租户支持
可通过VLAN创建二层隔离网络,不同网络中的容器相互隔离。例如创建两个VLAN网络:
bash$ docker network create -d passthrough --subnet=194.168.1.0/24 -o netdevice=ens2f0 -o mode=sriov -o vlan=100 customer1 $ docker network create -d passthrough --subnet=194.168.1.0/24 -o netdevice=ens2f0 -o mode=sriov -o vlan=200 customer2
分别在两个网络中运行容器:
bash$ docker run --net=customer1 -itd --name=web nginx $ docker run --net=customer2 -itd --name=web nginx
4.4 安全网络
默认创建非特权网络,容器无法进行欺骗***或嗅探其他容器流量(利用硬件卸载功能防止欺骗)。若受信任应用(如DPDK框架)需修改L2地址,可创建特权网络:
bash$ docker network create -d passthrough --subnet=194.168.1.0/24 -o netdevice=ens2f0 -o mode=sriov -o vlan=100 -o privileged=1 customer1
4.5 根据MAC地址选择特定VF
可通过指定MAC地址选择特定VF:
bash$ docker run --net=customer1 --mac-address=<目标VF的有效MAC地址> -itd --name=web nginx
5.1 创建网络
bash$ docker network create -d passthrough --subnet=194.168.1.0/24 -o netdevice=ens2f0 -o mode=passthrough mynet
5.2 运行容器
bash$ docker run --net=mynet -itd --name=web nginx
passthrough/sriov仅支持Linux环境。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务