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.ymldocker 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 分钟,取决于网络和机器性能),之后:

配置小技巧

  1. Intel 机器优先多分配 CPU 核心
CPUCores: "8"   # Intel 兼容性更好,可以直接多分配
  1. 扩展磁盘
DISK_SIZE: "256"   # 默认 64GB 不够用,建议 128GB+
  1. 文件共享
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 还做了 WindowsBSD 等虚拟机容器化项目