使用docker容器

时间:2018-05-30 16:59:27

标签: docker containers atomic

我的主机在SRIOV模式下运行,并且有多个物理设备出现在PCIe总线上。每个物理功能都有32个虚拟功能的集合。我想与docker容器共享一个虚函数。这些是加密/压缩加速器,我为一个写了一个驱动程序;所以当我处理裸机或SRIOV虚拟机管理程序启动虚拟机时,我对SRIOV很熟悉。但是现在我试图访问docker容器中的虚函数。

在主机上我可以lspci并查看我的物理和虚拟设备。但是当我启动一个容器时,我从容器中看到的只是物理功能。

我见过" - 设备" " docker run"的参数,但我认为它不适用于将虚函数传递给容器。

从逻辑上讲,这是我在主持人身上看到的内容:

[localhost] config # lspci | grep "^85" | head -4
85:00.0 Co-processor: Intel Corporation DH895XCC Series QAT
85:01.0 Co-processor: Intel Corporation DH895XCC Series QAT Virtual Function
85:01.1 Co-processor: Intel Corporation DH895XCC Series QAT Virtual Function
85:01.2 Co-processor: Intel Corporation DH895XCC Series QAT Virtual Function
[localhost] config # lspci | grep "^85" | wc
     33     295    2524

所以我们在85:00.0有32个虚拟物理函数。

但是当我启动容器并从容器内部进行相同的检查时,我看到的只有以下内容:

[localhost] config # lspci | grep QAT
04:00.0 Co-processor: Intel Corporation DH895XCC Series QAT
05:00.0 Co-processor: Intel Corporation DH895XCC Series QAT
85:00.0 Co-processor: Intel Corporation DH895XCC Series QAT

我被告知可以这样做:我可以将虚拟信息发送到容器中,我的驱动程序可以完成剩下的工作。

我的问题:如何将虚拟功能从主机传递到容器中?

1 个答案:

答案 0 :(得分:0)

如评论中所述(但带有标志名):

docker run -it --rm --cap-add=SYS_RAWIO ...

然后再次从容器内部尝试lspci。