万物皆可Docker,在NAS上一键部署最新苹果MacOS 15系统
哈喽小伙伴们还,我是Stark-C~
最近苹果Mac mini 2024款在政府补贴的加持下,仅需3500块钱左右就能到手确实挺香的。我看很多评论区的小伙伴跃跃欲试,但是也有不少之前从未体验过苹果MacOS系统的小伙伴,很怕自己买回来因为系统不熟而吃灰。
虽说在Windows上可以通过虚拟机的方式部署黑苹果简单体验下MacOS系统,但是过程非常繁琐,并且还非常吃性能,而且操作也是非常的卡顿,至于实体机黑苹果,太挑硬件,并且需要大量的时间调试 ,并不推荐。
今天就给大家分享一个可以部署在NAS上的黑苹果项目【dockurr/macos】,配置好一点的NAS都能跑起来,部署起来相对简单很多,最主要的是,它能非常方便的体验到最新的苹果MacOS 15系统(Sequoia),玩起来还是有点意思的。
关于dockurr/macos

🔺dockurr/macos是一款可以让我们在 Docker 容器中直接运行 MacOS 系统的免费开源工具,它具有以下特性亮点:
多版本 macOS 支持:从 Catalina 到最新的 Sonoma,各种 MacOS 版本任你选择。
接近原生的性能:基于 KVM 技术,流畅运行大多数 MacOS 应用。
图形界面支持:通过 X11 转发,在 Linux 主机上直接显示 MacOS 图形界面。
远程访问:支持 SSH 连接,方便远程开发和管理。
USB 设备直通:在容器中直接使用 iPhone 等 iOS 设备(我实测失败,但是为了让更有能力的小伙伴折腾,我还是将方法发了出来,希望评论区得到失败原因)。
灵活存储:使用自定义磁盘镜像或预构建镜像,轻松调整系统配置。
Apple 服务集成:支持 iMessage 和 iCloud,完整体验 Apple 生态系统。
CI/CD 友好:易于集成到自动化测试和部署流程中。
dockurr/macos部署
部署的必要条件:
因为此次需要使用Docker部署一个完整的MacOS系统,所以对于NAS的硬件配置还是有一些要求的(极空间Z4系列以上基本还是可以玩玩的):
x86_64 架构的 CPU,支持硬件虚拟化(这个就看你那边的NAS是否支持虚拟机,如果支持就说明这个条件满足)
至少 20GB 可用磁盘空间(推荐 50GB 以上)
至少 4GB RAM(推荐 8GB 以上)
部署前的准备:
需要在极空间NAS上部署好Portainer。

🔺极空间自从上次更新上线SSH功能以后,可玩性和功能性大大增强。我也是第一时间给大家分享了它的一些基本玩法和注意事项,其中就包括Portainer的部署:
按照文中教程,部署好Portainer以及了解它的基本用法还是没有问题的。
我这里再次多嘴提醒下绝大多数的普通用户:如果你只是为了使用命令部署Docker,就和我一样在部署好Portainer之后关掉极空间的SSH功能,一个是因为安全问题,另一个是防止自己误删极空间的系统文件导致系统问题。在Portainer中支持所有容器的命令和图像化部署,哪怕不是Compose命令,大家也可以通过【composerize】官网在线转换,非常方便!
另外就是Portainer是在使用命令部署容器的时候也是需要拉取Docker镜像,所以必要的代理和网络还是必要的,要不然也会失败,这里就不讨论了~
开始部署:

🔺准备工作没问题,咱们就可以正式部署。先在极空间的Docker目录下新建一个“macos”的文件夹,这个文件夹就是Docker容器下的MacOS系统磁盘映射的本地目录。

🔺然后打开Portainer,选择“堆栈--添加堆栈”。

🔺名称随意,在Web编辑器中输入以下命令(注意格式,很重要):
version: '3.8'
services:
macos:
image: dockurr/macos
container_name: macos # 容器名称
environment:
VERSION: "Sequoia" # 选择mocOS版本,我这里是最新的Sequoia,还有Big Sur/Monterey/Ventura/Sonoma可选
DISK_SIZE: "256G" # 指定映射磁盘大小
RAM_SIZE: "8G" # 指定内存大小
CPU_CORES: "4" # 指定CPU核心数
ARGUMENTS: "-device usb-host,vendorid=0x1234,productid=0x1234" # 启用USB 设备的制造商 ID和产品 ID,需要修改成自己NAS的
volumes:
- /var/osx:/storage # 磁盘映射的本地路径,我在Portainer中讲到过
devices:
- /dev/kvm
- /dev/bus/usb
cap_add:
- NET_ADMIN
ports:
- 8006:8006 # 项目Web页面打开端口,请勿本地冲突
- "5900:5900/tcp"
- "5900:5900/udp"
stop_grace_period: 2m
以上代码需要根据注释自行修改。

🔺稍等片刻,就能在Portainer中看到项目运行中,想要快捷打开直接点后面的端口号即可。
dockurr/macos体验
系统初始化设置:

🔺除了上步介绍的快捷打开,也可以和普通容器打开的方式一样,直接浏览器【极空间IP:端口号】即可。首次打开和实体机黑苹果一样,需要较为繁琐的初始化设置,这里它会先联网下载一些系统必备文件。

🔺当出现这个苹果LOGO,就说明系统已经开始正式安装了。

🔺看到这个界面先点击右上角的“File--choose Language”设置语言。

🔺选择“简体中文”。

🔺然后选择“磁盘工具--继续”。

🔺这里直接选中一个最大容量的盘符选项,点击“抹掉”。

🔺这里会让我们为系统命名,至于其它的选项不要动,点“抹掉”。

🔺等待进度条跑完之后点“完成”。
VeryCapture_20241109201128🔺继续点界面的左上角红色标识的“关闭”按钮(这个操作和Win系统位置相反~).

🔺接着点“重新安装--继续”。

🔺继续。

🔺同意。

🔺选中刚刚抹掉的盘符(看自己命名的名称),点“继续”。

🔺接着便是漫长的等待时间,这里建议你直接去睡一觉,真的是数小时,你也不用担心系统安装会出问题,这里的进度条跑完之后它会自动重启接着安装。

🔺一觉醒来之后你就会看到这个界面,往后就是基本操作,跟着向导一步步走就OK了。

🔺这个画面选“以后”。

🔺这里选择“稍后设置”,至于原因是因为我这里尝试登录自己的Apple ID,出现“位置错误”,原因未知。

🔺这里自已随意创建账户。

🔺定位还是不用了,无效。

🔺时区需要自己手动点击选择。

🔺最后一步,选择你“自动”更好一些。

🔺OK,大功告成。

🔺这里会蹦出来一个弹窗,直接“关闭”即可。
正式体验:

🔺顺利进入桌面,可以看到它安装的确实是最新MacOS 15系统。

🔺自带的程序也是一个都不少。

🔺Sequoia的小组件确实不错~

🔺苹果的Safari浏览器也能正常使用。

🔺硬件详情显示的配置信息和我们部署指定的也是一致的。

🔺备忘录用起来也还是非常流畅的。

🔺最后是锁屏,个人还是喜欢14版本之前的,这个看起来有点Win里Win气的~
最后
这个项目还是有点意思的,至少它可以让我们零成本原生体验到了苹果MacOS系统,不过说到底它还是一个虚拟出来的系统,想要生产力还是需要物理机。
另一方面,极空间此次开放SSH之后,功能性也确实是大大增强。就比如说今天的这个项目,是没有办法直接在极空间自己的Docker管理器上部署成功的(无法启用容器的虚拟化命令“/dev/kvm”)。
最近正逢极空间双十一感恩回馈大促销活动,极空间的多款产品都有好价。如果你近期有入手NAS的计划,不妨关注下极空间
好了,以上就是今天给大家分享的内容,我是爱分享的Stark-C,如果今天的内容对你有帮助请记得收藏,顺便点点关注,咱们下期再见!谢谢大家~

黄老爷爱张大妈
校验提示文案
我爱脆骨
❯ Creating a 256 GB growable disk image in raw format...
❯ Building boot image...
❯
❯ Model: iMacPro1,1
❯ Rom: 0016cbbb7389
❯ Serial: C02DNWYKHX87
❯ Board: C02045401J9JG361F
❯
❯ Warning: your configured RAM_SIZE of 4 GB is very close to the 5.4 GB of memory available, please consider a lower value.
❯ Booting macOS using QEMU v10.0.0...
3h3h3hBdsDxe: failed to load Boot0001 "UEFI Misc Device" from PciRoot(0x0)/Pci(0xA,0x0): Not Found
BdsDxe: loading Boot0002 "UEFI Misc Device 2" from PciRoot(0x0)/Pci(0x5,0x0)
BdsDxe: starting Boot0002 "UEFI Misc Device 2" from PciRoot(0x0)/Pci(0x5,0x0)
#[EB|LOG:EXITBS:END] _
#[EB.BST.FBS|-]
#[EB|B:BOOT]
#[EB|LOG:HANDOFF TO XNU] _
======== End of efiboot serial output. ========
报错日志,我是z4pro8G,Intel N97是不是缺少必要的指令,调整cpu和内存分配也一样失败
校验提示文案
飞鱼028
校验提示文案
最爱国补啦啦噜
校验提示文案
值友6579367695
校验提示文案
clory
校验提示文案
冉华波
校验提示文案
杏子
校验提示文案
吴小剑
校验提示文案
YBLoveCX
校验提示文案
琴心似月
校验提示文案
便宜不常有
校验提示文案
ghyoung
校验提示文案
Sailoe
校验提示文案
joeyzhou1980
校验提示文案
Sherry哥
校验提示文案
值友8876012760
校验提示文案
52ququ
校验提示文案
羊村第一狼
校验提示文案
没事转转
校验提示文案
我爱脆骨
❯ Creating a 256 GB growable disk image in raw format...
❯ Building boot image...
❯
❯ Model: iMacPro1,1
❯ Rom: 0016cbbb7389
❯ Serial: C02DNWYKHX87
❯ Board: C02045401J9JG361F
❯
❯ Warning: your configured RAM_SIZE of 4 GB is very close to the 5.4 GB of memory available, please consider a lower value.
❯ Booting macOS using QEMU v10.0.0...
3h3h3hBdsDxe: failed to load Boot0001 "UEFI Misc Device" from PciRoot(0x0)/Pci(0xA,0x0): Not Found
BdsDxe: loading Boot0002 "UEFI Misc Device 2" from PciRoot(0x0)/Pci(0x5,0x0)
BdsDxe: starting Boot0002 "UEFI Misc Device 2" from PciRoot(0x0)/Pci(0x5,0x0)
#[EB|LOG:EXITBS:END] _
#[EB.BST.FBS|-]
#[EB|B:BOOT]
#[EB|LOG:HANDOFF TO XNU] _
======== End of efiboot serial output. ========
报错日志,我是z4pro8G,Intel N97是不是缺少必要的指令,调整cpu和内存分配也一样失败
校验提示文案
亦莫兮子
校验提示文案
亦莫兮子
校验提示文案
值友6579367695
校验提示文案
云导者
校验提示文案
天真de小宇
校验提示文案
随风而行之之
校验提示文案
没事转转
校验提示文案
cbhb818
校验提示文案
羊村第一狼
校验提示文案
52ququ
校验提示文案
值友8876012760
校验提示文案
Sherry哥
校验提示文案
琴心似月
校验提示文案
joeyzhou1980
校验提示文案
YBLoveCX
校验提示文案
今天适合买买买
校验提示文案
Sailoe
校验提示文案
吴小剑
校验提示文案
ghyoung
校验提示文案