本文档介绍了 Docker-OSX 的硬件直通功能,该功能允许将宿主机的物理硬件设备暴露给容器内运行的 macOS 虚拟机。有关网络配置信息,请参阅 网络与端口转发,有关无头操作的详细信息,请参阅 无头操作。
Docker-OSX 支持多种硬件直通方式,以增强功能性和可用性
核心直通机制依赖于 QEMU 的设备模拟能力以及正确的 Docker 设备映射。
来源: Dockerfile31-36 Dockerfile52-53 README.md274-366
Docker-OSX 支持两种主要的 USB 设备直通方法,对于连接 iPhone 和 iPad 特别有用
要进行直接 USB 直通,您需要识别 USB 设备并将其传递给 Docker 容器
您还可以传递额外的 QEMU 参数来指定 USB 设备
对于无法进行直接 USB 直通的情况(例如笔记本电脑或某些宿主机),USBFLUXD 提供了一种基于网络的替代方案
设置 USBFLUXD 需要
在 Linux 宿主机上
在 macOS 客户机上
来源: README.md274-366
Docker-OSX 支持多种音频子系统,ALSA 是默认选项,而 PulseAudio 在许多环境中提供更好的兼容性。
默认情况下,Docker-OSX 使用 ALSA 进行音频。要启用它
为了获得更好的音频支持,尤其是在桌面环境中,建议使用 PulseAudio
适用于 Windows 上的 WSL2
如果您不需要音频,可以完全禁用它
音频配置由 QEMU 的 audiodev 参数处理
来源: Dockerfile194-205 README.md887-945
Docker-OSX 中的 GPU 直通是实验性的,支持有限。它需要特定的硬件和配置。
尝试 GPU 直通
这是高级功能,可能需要根据您的硬件进行额外的特定配置。
如果您的 USB 设备在 macOS 中未被检测到
如果您遇到音频问题
audio 组如果您看到像 "Cannot find card '0'" 或 "Unknown PCM default" 这样的 ALSA 错误
GPU 直通非常复杂,可能并非在所有环境中都有效
为了在 Docker-OSX 硬件直通中获得最佳性能
| 硬件类型 | 建议 | 备注 |
|---|---|---|
| USB | USB 3.0 端口 | 为设备提供更好的带宽 |
| 音频 | PulseAudio | 与现代 Linux 发行版的兼容性更好 |
| 显卡 | 独立 GPU | 实际 GPU 直通所需 |
| CPU | 支持 IOMMU 的 CPU | 高效直通所需 |
| 内存 | 8GB+ RAM | 更多的宿主机内存允许为虚拟机分配更多内存 |
来源: README.md274-366 README.md887-945 FAQ.md40-42 FAQ.md145-146