我想在我的MacBook Pro上的docker容器中运行支持GPU的应用程序(Gazebo)。
通过我的研究,在我看来,大约一年前,Docker为MacOS发布了一个原生的Docker应用程序。
在此之前,Docker曾经生成整个Linux VM并在其上运行容器。
现在,它显然使用了一些原生虚拟机管理程序框架,使其更加优化并更接近硬件,完全改变了Docker在Mac上的容器化方法。
这一切对我来说都不是很清楚,我不确定我所说的一切。
现在是否可以从docker容器中使用我的macbook pro的GPU,如果可以,怎么样?
我现在正在使用的命令行,适用于常规X11应用程序但不支持像Gazebo这样的支持GPU的应用程序:
xhost +
docker run -it -e DISPLAY=$ip:0 -v /tmp/.X11-unix:/tmp/.X11-unix image_name bash
答案 0 :(得分:9)
Docker for Mac使用名为XHyve的虚拟化层。它比VirtualBox等更薄更轻巧(模拟更少的外围设备),但它仍然是虚拟化。
带有IOMMU的硬件(是的,您的MacBook Pro具有支持的英特尔芯片组)可以允许虚拟化环境直接访问PCI硬件。
但是,您无法将某个硬件控制权交给VM,仍然可以使用该主机的硬件。 (一些高端服务器网卡通过多个PCI端点来解决这个问题,因此主机和每个客户端都有不同的端点可以通话)。
The underlying support in Xhyve还没有(截至2017年中期的写作),甚至在KVM上(很多人都在这里开展工作),只有有限的成功报告(使用特定的视频卡--Radeon HD 5850。