dockur/macos 让 macOS 在 Docker 容器里运行,基于 QEMU/KVM 虚拟化,20000+ Stars。Linux 主机一键启动 macOS 虚拟机,支持 Sonoma/Ventura/Big Sur 等多版本,自定义磁盘和网络,MIT 协议开源免费。
🎤 引言
想在一台 Linux 服务器或电脑上体验 macOS,但又不舍得买 Mac?或者你是开发者,需要在 CI/CD 环境里编译 iOS/macOS 应用,但不想折腾黑苹果?
GitHub 上有一个 20000+ Stars 的开源项目 dockur/macos,它能把 macOS 装进 Docker 容器里跑——基于 QEMU/KVM 虚拟化,一行 docker compose 就能启动一个完整的 macOS 虚拟机。Linux 机器上跑 macOS,不是梦。
⭐ 核心功能
1. Docker 里跑 macOS,零门槛
整个项目的核心玩法就是"macOS 虚拟机即容器"。通过 QEMU/KVM 在 Docker 内部虚拟化硬件环境,macOS 以为自己在真实硬件上跑,实际上整个虚拟机被封装在一个 Docker 容器里。
使用方式极度简单——写一个 docker-compose.yml,docker compose up,等几分钟,macOS 就启动好了。VNC 或浏览器直接访问,完整的 macOS 图形界面就在你面前。不需要了解 QEMU 命令行、不需要折腾 BIOS 设置,全自动。
2. 支持多个 macOS 版本
项目支持多个 macOS 版本并行运行,根据 MACOS_VERSION 环境变量指定:
- macOS Sonoma(14.x)
- macOS Ventura(13.x)
- macOS Monterey(12.x)
- macOS Big Sur(11.x)
可以根据需要选择不同版本测试兼容性,比如测一下自己的应用在 Sonoma 上表现如何。
3. 基于 QEMU/KVM,性能有保障
底层虚拟化引擎是 QEMU,配合 KVM(Kernel-based Virtual Machine)硬件加速。在支持 CPU 虚拟化扩展(Intel VT-x / AMD-V)的机器上,macOS 虚拟机的性能损耗相对较小,日常使用和轻度开发完全够用。
不过需要注意的是——这个项目仅支持 Linux 主机,不支持在 macOS 或 Windows 上运行。毕竟 macOS 的虚拟化对硬件有要求,而且 Dockur 的实现依赖 Linux 内核的 KVM 模块。
4. 灵活的配置选项
通过 docker-compose.yml 可以深度定制:
- 磁盘大小(
DISK_SIZE):默认 64GB,可以按需扩容 - CPU 核心数(
CPUcores):Intel 机器建议多分配核心,macOS 对多核支持更好 - 内存大小(
RAM):默认 4GB,可以调大到 8GB 或更多 - 独立 IP(macvlan 网络):让容器拥有自己的 IP 地址,和宿主机同一网段
- 文件共享:通过挂载 volume,宿主机和 macOS 虚拟机共享文件
5. 支持 Apple Silicon(ARM)虚拟化
在 Apple Silicon Mac( M1/M2/M3 芯片)上的 Linux 环境里,可以利用 HVF(Hypervisor Framework)虚拟化加速。不过根据 GitHub Issues,部分用户在 Apple Silicon 上运行仍有一些问题需要手动配置。
6. Web UI + VNC 访问
启动后可以通过浏览器直接访问 macOS 图形界面(WebRTC 流),不需要额外安装 VNC 客户端。对于远程服务器场景非常友好——SSH 进去开容器,浏览器里就是 macOS 桌面。
7. GitHub Actions 友好
开发者可以用这个项目在 GitHub Actions CI/CD 里跑 macOS 测试任务。每次 Job 启动一个 macOS 容器,跑完自动销毁,按需计费。不用买 Mac mini 托管服务,也不用排队等共享 CI。
📥 安装使用
前置要求
- Linux 主机(不支持 macOS/Windows 宿主机)
- 支持 KVM 虚拟化(
cat /proc/cpuinfo | grep -E 'vmx|svm'有输出) - Docker 和 Docker Compose 已安装
- 至少 4GB 内存(建议 8GB+)
快速启动
创建 docker-compose.yml:
services:
macos:
image: dockur/macos
container_name: macos
device: /dev/kvm
cap-add: NET_ADMIN
environment:
VERSION: "14"
DISK_SIZE: "128"
RAM: "8"
CPUCores: "4"
volumes:
- ./macos-disk:/storage
ports:
- "8006:8006"
- "5900:5900"
devices:
- /dev/kvm:/dev/kvm
restart: unless-stopped启动:
docker compose up -d然后等待初始化(约 10-20 分钟,取决于网络和机器性能),之后:
- Web UI 访问:http://your-host:8006
- VNC 客户端:连接
your-host:5900
配置小技巧
- Intel 机器优先多分配 CPU 核心:
CPUCores: "8" # Intel 兼容性更好,可以直接多分配- 扩展磁盘:
DISK_SIZE: "256" # 默认 64GB 不够用,建议 128GB+- 文件共享:
volumes:
- /your/project:/shared然后在 macOS 虚拟机里挂载 /shared 目录即可。
🎯 适用场景
✅ 适合用 dockur/macos 的人:
- Linux 用户想体验 macOS:没有 Mac 硬件,但想在 Linux 上感受 macOS 生态
- iOS/macOS 开发者:需要编译 Xcode 项目或测试 macOS 应用,但没有 CI 预算买 Mac mini 托管
- GitHub Actions CI/CD:想在 macOS runner 上跑自动化测试
- 隔离测试环境:在虚拟机里跑有风险的应用,和宿主机隔离
- 快速演示:临时需要 macOS 环境做演示,容器用完就删
❌ 不适合用 dockur/macos 的人:
- 日常使用:虚拟机性能损耗明显,不适合当主力系统
- macOS/Windows 桌面用户:项目仅支持 Linux 宿主机
- 需要 GPU 加速:QEMU/KVM 虚拟化没有 GPU 直通,不适合视频渲染等任务
- 生产环境:官方不建议在生产环境使用(LICENSE 里也写了"No commercial use")
⚠️ 注意事项
1. 法律风险(最重要)
Apple 的 macOS 最终用户许可协议(EULA)不允许在非 Apple 硬件上运行。这个项目虽然开源,但使用它可能在某些地区存在法律风险。在中国目前没有看到明确的法律执行案例,但如果是企业用途或对合规性要求严格,请先咨询法务。
2. 不支持 macOS App Store 和 Apple ID
虚拟化环境里,macOS 可能会检测到虚拟化环境,导致 App Store 部分功能受限或 Apple ID 登录受限。如果需要用 App Store 安装应用,这个方案可能不适用。
3. 性能有上限
QEMU/KVM 虚拟化相比原生 macOS,性能损耗大约 20-30%。CPU 密集型任务(Xcode 编译大型项目)会比真实 Mac 慢不少。GPU 加速几乎不可能,所以不适合图形密集型任务。
4. Apple Silicon Mac 上运行有限制
根据 GitHub Issue(#547)反馈,在 Apple Silicon Mac 上的 Linux 环境里跑 dockur/macos 需要额外配置 HVF,官方也明确说支持不完整。如果你是 Apple Silicon 用户,想在 Mac 上同时跑 Linux + macOS 虚拟机,可能需要更复杂的配置。
5. 首次启动需要下载镜像
第一次 docker compose up 时,程序会自动从 Apple 服务器下载 macOS 恢复镜像(约 12GB),需要良好的网络连接。整个过程可能需要 10-30 分钟,取决于网速。
✅ 总结
优点回顾:
- ✅ 一键在 Docker 里跑 macOS,零门槛
- ✅ 20000+ Stars,活跃开源项目
- ✅ 支持 Sonoma/Ventura/Big Sur 等多版本
- ✅ 可深度定制 CPU/内存/磁盘/网络
- ✅ Web UI + VNC,远程访问方便
- ✅ MIT 协议,完全免费
- ✅ GitHub Actions CI/CD 友好
缺点回顾:
- ❌ 法律风险——macOS EULA 不允许在非 Apple 硬件上运行
- ❌ 仅支持 Linux 宿主机
- ❌ App Store/Apple ID 功能可能受限
- ❌ 性能有损耗,不适合 GPU 密集型任务
- ❌ Apple Silicon 上支持不完整
- ❌ 首次启动需下载 12GB 镜像
一句话推荐:
如果你在 Linux 环境里需要跑 macOS 虚拟机(比如 iOS 开发测试、CICD),dockur/macos 是一个值得尝试的开源方案——20000+ Stars 的热度说明它确实解决了实际问题。当然,法律风险这件事心里要有数,企业用途请先咨询法务。
项目地址:https://github.com/dockur/macos
Star/Fork:⭐ 20324 | Fork 1021
License:MIT
相关项目:Dockur 还做了 Windows、BSD 等虚拟机容器化项目