本页面概述了 Docker-OSX 中可用的配置和自定义选项。在这里,您将学习如何修改 Docker-OSX 容器以适应您的特定需求,从内存分配等基本设置到硬件直通和系统身份管理等高级自定义。
有关特定环境变量的详细信息,请参阅 环境变量。有关网络配置,请参阅 网络与端口转发。有关硬件直通选项,请参阅 硬件直通。
Docker-OSX 通过环境变量提供了广泛的配置选项,使您无需修改底层容器即可自定义虚拟化 macOS 环境的几乎所有方面。
来源: Dockerfile193-211 Dockerfile283-333 README.md186-217
Docker-OSX 允许您通过环境变量配置关键系统资源,从而轻松调整容器以适应您的硬件功能。
| 可变 | 描述 | 默认 | 示例 |
|---|---|---|---|
内存 | 内存分配(GB) | 4 | -e RAM=8 |
SMP | CPU 插槽数量 | 4 | -e SMP=2 |
CORES | 每个插槽的核心数量 | 4 | -e CORES=4 |
CPU | 要模拟的 CPU 模型 | Penryn | -e CPU=Haswell-noTSX |
您还可以使用特殊值进行 RAM 分配
-e RAM=max - 使用所有可用系统内存-e RAM=half - 使用可用系统内存的一半显示资源配置的示例命令
来源: Dockerfile193-196 README.md1193-1196
Docker-OSX 提供了多种存储配置选项,包括指定现有磁盘映像、创建新映像或挂载其他磁盘。
来源: Dockerfile206-211 README.md1508-1536
使用您自己的 macOS 磁盘映像
:naked 容器变体专为使用您自己的磁盘映像而设计。
您可以将额外磁盘挂载到 macOS 客户机系统内部
Docker-OSX 提供了几种在主机和客户机之间共享文件的方法
使用 SSHFS(最安全且推荐的方法)
使用 9P 文件系统(原生 QEMU 共享)
使用 NFS(适用于大型文件共享需求)
来源: README.md263-271 README.md998-1068
Docker-OSX 提供了多种网络选项,用于将您的 macOS 虚拟机连接到外部世界,并允许访问 macOS 内部运行的服务。
默认情况下,Docker-OSX 会转发以下端口
您可以使用 ADDITIONAL_PORTS 环境变量指定其他端口转发
您可以选择不同的网络适配器类型
| 适配器模式(Adapter) | 目的 | 命令 |
|---|---|---|
| vmxnet3 | 快速的互联网连接 | -e NETWORKING=vmxnet3 |
| e1000-82545em | 更好的兼容性 | -e NETWORKING=e1000-82545em |
来源: Dockerfile212-213 README.md925-963 README.md1121-1128
Docker-OSX 允许您通过序列号和硬件标识符来自定义虚拟机的身份。这对于 iMessage、iCloud 和 App Store 功能尤其重要。
来源: Dockerfile234-276 README.md1216-1396
在运行时生成随机序列号
使用特定的序列号
保存生成的序列号以供将来使用
这会将序列信息保存到环境变量文件中,该文件可用于后续容器运行。
来源: README.md1354-1374 README.md1375-1396
Docker-OSX 提供了各种选项来自定义 macOS 虚拟机的显示设置。
自定义显示分辨率
常见分辨率对
注意:分辨率设置必须与 GENERATE_UNIQUE=true 或 GENERATE_SPECIFIC=true 一起使用,因为它们需要生成具有自定义分辨率的新启动磁盘。
对于服务器或 CI/CD 环境,您可以无头运行 Docker-OSX
有关更详细的信息,请参阅 无头操作。
来源: README.md1398-1505 README.md1151-1173
Docker-OSX 允许使用 EXTRA 环境变量直接向 QEMU 传递其他参数,为高级自定义场景提供完全的灵活性。
| 目的 | EXTRA 值 |
|---|---|
| USB 设备直通 | -usb -device usb-host,hostbus=1,hostaddr=8 |
| 额外的存储设备 | -device ide-hd,bus=sata.5,drive=DISK-TWO -drive id=DISK-TWO,if=none,file=/disktwo,format=qcow2 |
| Telnet 监控访问 | -monitor telnet::45454,server,nowait |
| 自定义 CPU 功能 | -cpu Haswell-noTSX,+xsave,+xsaveopt |
Docker-OSX 通过 AUDIO_DRIVER 环境变量支持不同的音频后端
来源: Dockerfile194-217 README.md887-913 README.md1190-1212
Docker-OSX 提供了几个自定义启动过程的选项。
来源: Dockerfile361-400 README.md371-376
可以使用 NOPICKER 环境变量来启用或禁用启动选择菜单
对于 CI/CD 或自动化环境,您可以配置 Docker-OSX 以自动启动到 macOS 并执行操作
来源: README.md244-261 README.md1151-1173
优化 Docker-OSX 可以显著提高 macOS 虚拟机性能和响应能力。
配置 CPU 核心和插槽数量
您可以手动指定 RAM 分配或使用动态选项
在 macOS 内部,您可以使用 osx-optimizer 工具进行优化,该工具可以
来源: Dockerfile192-196 README.md368-376 README.md738-748
Docker-OSX 提供了广泛的配置和自定义选项,以满足您对 macOS 虚拟机的特定需求。从基本的资源分配到高级的系统身份管理,几乎所有虚拟化环境的方面都可以通过环境变量和 Docker 运行时参数进行自定义。