使用Docker-OSX在虚拟机上安装macOS Big Sur或Catalina

Docker-OSX 这是一个在Docker容器中使用OSX-KVM在接近本机状态下运行macOS的项目。您可以使用它在QEMU虚拟机中(通过Docker)安装macOS并运行macOS Catalina或Big Sur桌面,或启动OS X Shell。

Docker-OSX项目提供了四个Docker映像:

  • sickcodes/docker-osx:latest -使用macOS Catalina的原始基础恢复映像
  • sickcodes/docker-osx:big-sur -使用macOS Big Sur的原始基础恢复映像
  • sickcodes/docker-osx:naked -提供您自己的.img文件( -v "${PWD}/disk.img:/image")。
  • sickcodes/docker-osx:auto -大型(〜19.4GB)Docker映像启动到OSX Shell中(启用SSH,使用用户作为用户名,使用alpine作为密码。此映像需要大约50GB的磁盘空间来运行)

功能包括:

  • X11转移
  • 全自动模式:您也可以直接启动OSX Shell并执行命令作为运行时参数。
  • Kubernetes舵图。查看 .. /头盔
  • SSH开启 localhost:50922
  • VNC版本 localhost:8888VNC版本 (由于与使用VNC相关的安全风险,因此位于单独的目录中)
  • 使用docker commit在完全相同的容器中创建一个ARMY
  • Xfvb无头模式

此项目的各种调整包括转发其他端口,更改屏幕分辨率,启用网络转发,允许USB直通,使用创建的大图像和使用自己的图像的快速入门步骤,等等(步骤均在项目页面上) 。

从一开始就值得注意的是,Apple不允许在非Apple硬件上安装macOS。因此,该操作系统必须安装在Apple硬件上才能合法使用。另外,要使用它,您计算机的CPU必须支持硬件虚拟化。 请参阅KVM清单 从这里 检查CPU是否支持它(如果一切正常,您也可以运行sudo kvm -ok,它返回“ KVM加速可用”)。

在我的Ubuntu 20.10桌面上, sickcodes/docker-osx:big-sur 该图像耗时约55分钟。 Docker映像需要约3.2GB的磁盘空间,这需要使用约35GB的容器空间。

另请查看Sosumi,这是一个可轻松在Linux上的虚拟机上下载和安装macOS Catalina的软件包。这也使用QEMU + KVM。 macOS-简单-KVM.. 值得注意的是,Sosumi自首次发布以来就没有进行过更新。

以下是使用Docker(Docker-OSX)运行基于macOS(Catalina或Big Sur)的恢复映像,安装并运行macOS(您可以选择设置自定义分辨率的选项。如果未指定,将使用1920×1080)。也有删除容器的步骤。

您可能还会喜欢:LazyDocker:Docker和Docker构成了终端UI

如何使用Docker-OSX在QEMU + KVM上安装macOS(OSX)

1.先决条件。

在继续之前,请确保您的计算机支持硬件虚拟化并且已在BIOS中将其启用( sudo kvm-ok 如果一切正常,则返回“ KVM加速可用”。完成此操作后,您可以继续执行下面的其余步骤。

首先要确保您有 Docker已安装 (另请参见公式 Docker安装文档)。

安装QEMU 在主机系统上,如果尚未执行此操作。您可能还需要使用将用户添加到kvm组。 sudo usermod -aG kvm $USER 为了使其正常工作。

请继续阅读本文中的评论,以粗略估算所需的磁盘空间。为了 sickcodes/docker-osx:auto 要使用它,您需要大约50GB的磁盘空间。

2.启动Docker-OSX。

使用Docker-OSX运行macOS Big Sur或Catalina(有关其他选项,请参阅Docker-OSX项目页面-例如,您可以运行它 无头,使用原始图像病码/ docker-osx:最新运行以允许SSH到macOS,等等;也请检查这些 自定义QEMU参数 可用于设置CPU内核数,可用RAM等):

  • 运行macOS Big Sur( WIDTHHEIGHT 用于macOS Big Sur虚拟机的屏幕分辨率的值。我使用的是下面的1600×900),我使用的是基本恢复映像:
docker run -it     --device /dev/kvm     -p 50922:10022     -e GENERATE_UNIQUE=true     -e DEVICE_MODEL="iMacPro1,1"     -e WIDTH=1600     -e HEIGHT=900     -v /tmp/.X11-unix:/tmp/.X11-unix     -e "DISPLAY=${DISPLAY:-:0.0}"     sickcodes/docker-osx:big-sur
  • 运行macOS Catalina( WIDTHHEIGHT 用于macOS Big Sur虚拟机的屏幕分辨率的值。我使用的是下面的1600×900),我使用的是基本恢复映像:
docker run -it     --device /dev/kvm     -p 50922:10022     -e GENERATE_UNIQUE=true     -e DEVICE_MODEL="iMacPro1,1"     -e WIDTH=1600     -e HEIGHT=900     -v /tmp/.X11-unix:/tmp/.X11-unix     -e "DISPLAY=${DISPLAY:-:0.0}"     sickcodes/docker-osx:latest

这可能需要几分钟的时间。

上面的Docker执行命令使用基本选项在使用Docker的QEMU中引导macOS(基本恢复映像,用于安装macOS)。这是由Docker-OSX项目页面提供的,其中添加了屏幕分辨率选项。如果删除 GENERATE_UNIQUEDEVICE_MODELWIDTHHEIGHT 如果选择该选项,则虚拟机将使用默认(1920×1080)屏幕分辨率。

3.使用磁盘工具格式化最大的QEMU HARDDISK。

几分钟后,macOS虚拟机将启动。 启动macOS基本系统并 Disk Utility 从菜单中:

macOS QEMUDocker磁盘实用程序

然后,在“磁盘工具”工具中,检查两个QEMU HARDDISK介质左侧的最大硬盘,然后单击最大硬盘(用于测试该版本的版本为214.75 GB)。

提示:按下以在QEMU虚拟机中释放鼠标。 Ctrl + Alt + g (在某些情况下,仅此而已 Ctrl + g)。

然后点击 Erase 要格式化此硬盘,请单击“磁盘工具”工具栏上的按钮。

macOS QEMUDocker磁盘实用程序

设置磁盘的名称(例如“ macOS”),并将其他选项保留为默认值(格式:macFS Big Sur的APFS,macOS Catalina的MacOS Extended(日志式),模式均为GUID分区图。) 。

一旦最大QEMU HDD被擦除[ディスクユーティリティ]关闭对话框。

4.在虚拟机上安装macOS。

关闭“磁盘工具”后,将再次显示允许您启动“磁盘工具”等的菜单。但是,这一次您需要选择以下选项: Reinstall macOS Big Sur (或者,如果您使用的是 sickcodes/docker-osx:latest 具有Catalina的图片,此选项仅称为 Reinstall macOS):

重新安装macOS QEMU Docker

点击 Continue,然后 Agree,将出现一个屏幕,您可以在其中选择在步骤3中格式化的HDD(将使用您在擦除时输入的名称来显示它,例如: macOS 在此示例中)。 选择硬盘,然后单击 Continue

macOS QEMUDocker选择磁盘

macOS Big Sur / Catalina的安装(取决于您选择的映像)将开始。

安装macOS QEMU Docker

一段时间后,macOSX虚拟机将重新启动。请选择 macOS Installer 启动时输入:

macOS QEMUDocker安装程序

安装完成后,该引导条目将只是“ macOS”,您将能够在虚拟机内部启动新的macOS安装。

macOS QEMU Docker macOS启动菜单

接下来,您需要选择一个国家或地区,可以选择使用Apple ID登录,接受条款和条件,并创建一个计算机帐户(用户名和密码)。

请注意,在首次安装macOS并启动后,我不得不选择两次macOS条目(第一次选择后便重新启动了)。另外,在macOS安装过程中会有鼠标延迟(和常见延迟),但是当我运行已安装的macOS虚拟机时,这在我的计算机上消失了(或变得不太明显(取决于硬件))。

5.启动新安装的macOS虚拟机。

如果要启动新安装的macOS虚拟机 docker ps -a 要检查容器ID和名称:

docker ps -a

然后启动容器。

docker start Container_ID_or_Name

交换 Container_ID_or_Name 使用通过上一条命令获得的容器ID或名称。

您可能还会喜欢:Portainer:用于远程或本地使用的基于Web的Docker GUI

如何删除Docker-OSX

因此,我决定删除Docker-OSX。首先运行以下命令以获取Docker容器名称和ID的列表。

docker container ls -a

使用此命令来标识要删除的容器。然后使用以下命令停止并删除容器:

docker container stop ID_or_Image

docker container rm ID_or_Image

交换 ID_or_Image 使用通过上一条命令获得的容器ID或图像。

要删除Docker-OSX映像,请使用以下命令列出现有的Docker映像:

docker image ls

然后使用以下命令删除Docker-OSX映像:

docker image rm Image_ID

交换 Image_ID 使用通过上一条命令获得的图像ID。

通过 cerebrux.net (GR)

Sidebar