Docker 带有 HBA 卡的容器

Docker container with HBA card

我如何将 HBA 卡(在 centos 7 上的物理服务器 运行 上)连接到 docker 容器?当我正在做 POC 以从现有环境迁移到 docker 时,这是非常需要的。它类似于 VMware ESXi 中的直接 IO(可以通过直接 I/O 将物理 hba 附加到 VM)。

Docker 不是管理程序,容器不是 VM,"attaching devices" 对容器来说不一定有意义——容器只是一个进程 运行正在您的主机上。

您可以使用 --device 标志将 /dev 中的设备节点暴露给容器 docker run,尽管在容器中暴露块设备通常会导致其他并发症(例如, 一个普通的容器不能挂载文件系统,所以你需要 运行 它和 --privileged,从安全的角度来看,这可能是可以接受的,也可能是不可接受的,这取决于你的环境。

对于存储,更常见的做法是在 主机 上安装设备,然后将这些文件系统作为 Docker 卷 (-v /host/path:/container/path) 公开给容器.