使用 Docker 在 Windows 上安装 MacOS

对于那些想了解 MacOS 在 Windows 上是什么样子的人,或者如果您管理一组异构计算机(Windows + Mac OS),在 Windows 上安装 MacOS 虚拟机以方便您进行故障排除是很实用的。这可以通过 Docker 实现,我将在本教程中解释如何做到这一点。

先决条件

要使用 Docker 在 Windows 上运行 MacOS 虚拟机,需要满足以下先决条件:

  • 带有 WSL2 的 Windows 11
  • Docker 桌面
  • 主机的 CPU 必须支持 Intel VT 或 AMD-V 虚拟化,并且该选项在 BIOS 中处于活动状态。

由于该项目,这一切都成为可能GitHub 上提供 Dockur/macos

安装程序 Docker 桌面

下载并安装适用于 Windows 的 Docker并在 Docker 设置中启用 WSL 集成:

  • 选项卡一般的, 选项使用基于 WSL 的引擎
  • 选项卡资源WSL 集成, 选项启用与我的默认 WSL 发行版的集成

在 Windows 11 上安装 WSL2

WSL(Windows Subsystem for Linux)是一个子系统,允许您在 Windows 下运行 GNU/Linux 环境,而无需使用传统的 VM。它还允许。以下是在 Windows 11 上安装 WSL2 的方法:

打开一个窗口,然后键入以下命令:

wsl --install

然后,您可以使用以下命令列出 WSL 安装wsl -l -v。版本必须是2

wsl -l -v

检查KVM

现在您已经安装了带有 WSL2 的 Ubuntu,有必要验证您的安装是否支持 KVM 虚拟化。

以管理员身份启动 Powershell 窗口并键入命令wsl进入WSL分发批次。输入命令检查KVM是否可以使用kvm-ok。您必须收到消息KVM acceleration can be used

如果 KVM 返回未找到命令,请执行一些操作您的发行版和安装cpu-checker

sudo apt update && sudo apt -y upgrade
sudo apt install cpu-checker

如果您收到消息,Your CPU does not support KVM extensions,您必须检查您的 CPU 是否与 Intel VT 或 AMD-V 虚拟化兼容,并且它是否处于活动状态。

如果您在虚拟机中运行容器,则必须启用嵌套虚拟化

  • 输入命令Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true在管理员的 Powershell 中,替换VMName按您的 Windows 11 虚拟机的名称
  • 导航至文件夹c:\Users\<nom>或者%UserProfile%并编辑文件.wslconfig。如果不存在,则创建它。最后提供以下信息:
[wsl2]
nestedVirtualization=true

使用 Docker 在 Windows 上安装 MacOS

完成前面的步骤后,只需发出命令即可在 Windows 上的 Docker 环境中启动 MacOS 容器。例如,对于 MacOS 13 Ventura:

docker run -it -p 8006:8006 --name MacOS -e RAM_SIZE=8G -e CPU_CORES=4 -e VERSION=13 --device=/dev/kvm --device=/dev/net/tun --cap-add NET_ADMIN --stop-timeout 120 dockurr/macos

您可以修改这些值内存大小纯的等CPU核心数为取决于您的系统的功能。低于 4 个 vCore 时,速度会显着减慢。如果你不知道该放多少,我邀请你阅读。

等待图像下载,然后您将在PowerShell中看到指示EFI启动结束。您可以通过以下地址从浏览器访问您的 MacOS Docker 环境:https://本地主机:8006/感谢 noVNC 和 Qemu。

出现安装提示后,您需要转到磁盘工具来格式化分区。

选择分区Apple Inc. VirtIO Block Media最大尺寸,然后单击已显示

为您的分区指定任意名称,然后按按钮已显示在 AFS 中格式化分区。

完成后,退出实用程序磁盘工具然后转到选项重新安装 macOS Big Sur。继续

MacOS 安装向导将打开。选择您刚刚创建的分区,然后继续在 Windows 环境中安装 MacOS。请耐心等待,安装过程可能会很长!

安装完成后,您将看到语言选择屏幕。继续这些步骤,直到到达 MacOS 桌面。虽然不是很顺利,但是一旦进入 MacOS 桌面,就更好了!