菜单

配置与自定义

相关源文件

本页面概述了 Docker-OSX 中可用的配置和自定义选项。在这里,您将学习如何修改 Docker-OSX 容器以适应您的特定需求,从内存分配等基本设置到硬件直通和系统身份管理等高级自定义。

有关特定环境变量的详细信息,请参阅 环境变量。有关网络配置,请参阅 网络与端口转发。有关硬件直通选项,请参阅 硬件直通

核心配置选项

Docker-OSX 通过环境变量提供了广泛的配置选项,使您无需修改底层容器即可自定义虚拟化 macOS 环境的几乎所有方面。

来源: Dockerfile193-211 Dockerfile283-333 README.md186-217

系统资源配置

Docker-OSX 允许您通过环境变量配置关键系统资源,从而轻松调整容器以适应您的硬件功能。

可变描述默认示例
内存内存分配(GB)4-e RAM=8
SMPCPU 插槽数量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 提供了几种在主机和客户机之间共享文件的方法

  1. 使用 SSHFS(最安全且推荐的方法)

  2. 使用 9P 文件系统(原生 QEMU 共享)

  3. 使用 NFS(适用于大型文件共享需求)

来源: README.md263-271 README.md998-1068

网络配置

Docker-OSX 提供了多种网络选项,用于将您的 macOS 虚拟机连接到外部世界,并允许访问 macOS 内部运行的服务。

端口转发

默认情况下,Docker-OSX 会转发以下端口

  • SSH(macOS 内部 22 → 容器内部 10022 → 主机上可自定义的端口)
  • VNC/屏幕共享(macOS 内部 5900 → 容器内部 5900)

您可以使用 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 虚拟机的显示设置。

分辨率配置

自定义显示分辨率

常见分辨率对

  • 800×600(默认回退)
  • 1280×768
  • 1600×900
  • 1920×1080
  • 2560×1600

注意:分辨率设置必须与 GENERATE_UNIQUE=trueGENERATE_SPECIFIC=true 一起使用,因为它们需要生成具有自定义分辨率的新启动磁盘。

无头操作

对于服务器或 CI/CD 环境,您可以无头运行 Docker-OSX

有关更详细的信息,请参阅 无头操作

来源: README.md1398-1505 README.md1151-1173

高级 QEMU 自定义

Docker-OSX 允许使用 EXTRA 环境变量直接向 QEMU 传递其他参数,为高级自定义场景提供完全的灵活性。

传递额外的 QEMU 参数

常见 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 优化

配置 CPU 核心和插槽数量

内存优化

您可以手动指定 RAM 分配或使用动态选项

访客优化

在 macOS 内部,您可以使用 osx-optimizer 工具进行优化,该工具可以

  • 禁用 Spotlight 索引
  • 禁用占用资源的登录屏幕壁纸
  • 禁用更新
  • 优化系统设置

来源: Dockerfile192-196 README.md368-376 README.md738-748

结论

Docker-OSX 提供了广泛的配置和自定义选项,以满足您对 macOS 虚拟机的特定需求。从基本的资源分配到高级的系统身份管理,几乎所有虚拟化环境的方面都可以通过环境变量和 Docker 运行时参数进行自定义。

有关更具体的自定义和详细说明,请参阅 环境变量网络和端口转发 以及 硬件直通 上的专门页面。