告别黑苹果!用docker安装MacOS体验苹果系统

2023-11-27 17:53:08 59点赞 508收藏 35评论

没用过苹果电脑的朋友可能会对苹果系统好奇,有人甚至会为了尝鲜MacOS去折腾黑苹果。如果你只是想体验一下MacOS,这里有个更简单更优雅的解决方案Docker-OSX:用docker安装MacOS来体验苹果系统。

告别黑苹果!用docker安装MacOS体验苹果系统


Docker-OSX是一个开源项目,而且支持多个版本的MacOS,比如说Catalina、Big Sur等。使用Docker部署Docker-OSX毕竟是运行一个系统,所以硬件上不能太差。如果没有高性能Linux主机,建议在电脑上通过WSL(Linux子系统)来安装,不建议在J1900这样的老爷机上去折腾。此外Docker-OSX需要用到虚拟机,所以还要部署一下KVM,这里给新手介绍一下。首先在BIOS中开启CPU虚拟化支持,然后在Linux系统中用如下命令测试是否支持硬件虚拟化(已经部署的可以略过这段):

grep -Eoc '(vmx|svm)' /proc/cpuinfo #支持硬件虚拟化,则输出结果大于0

我们用cpu-checker这个工具来测试系统是否支持KVM安装:

sudo apt update sudo apt install cpu-checker kvm-ok #如果支持KVM,输出结果为 KVM acceleration can be used

如果软硬件环境支持KVM,可以运行下面的命令安装 KVM和虚拟化管理软件包:

sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager

软件包说明:

  • qemu-kvm - 为 KVM 管理程序提供硬件模拟的软件程序

  • libvirt-daemon-system - 将 libvirt 守护程序作为系统服务运行的配置文件

  • libvirt-clients - 用来管理虚拟化平台的软

  • bridge-utils - 用来配置网络桥接的命令行工具

  • virtinst - 用来创建虚拟机的命令行工具

  • virt-manager - 提供一个易用的图形界面,并且通过libvirt 支持用于管理虚拟机的命令行工具

程序安装好后可以通过运行下面的命令,验证ibvirt 守护程序:

sudo systemctl is-active libvirtd #输入结果应为 active

安装好KVM运行docker就是一句命令的事情了,下面是官方给的镜像命令运行Catalina:

docker run -it --device /dev/kvm -p 50922:10022 -v /tmp/.X11-unix:/tmp/.X11-unix -e "DISPLAY=${DISPLAY:-:0.0}" sickcodes/docker-osx:latest # docker build -t docker-osx .

由于容器镜像都比较大,拉取时间会比较久。而且部署镜像会占用较大的空间,注意预留空间避免部署失败。部署完成后会自动调用虚拟机窗口运行MacOS系统:

告别黑苹果!用docker安装MacOS体验苹果系统

注意刚进入MacOS界面时是无法直接进入系统的,必须重新安装。首先选择最下面的磁盘管理工具:

告别黑苹果!用docker安装MacOS体验苹果系统

按照下图把第一个虚拟磁盘格式化成APFS格式(或者参照网上教程格式化成其它对应格式):

告别黑苹果!用docker安装MacOS体验苹果系统

然后关闭磁盘管理工具,返回之前界面。选择重新安装系统,选择你格式化的磁盘进行系统安装:

告别黑苹果!用docker安装MacOS体验苹果系统

等系统安装完毕,你就可以体验苹果系统了,是不是比折腾黑苹果简单多了,而且系统随意换。根据官方文档,这个虚拟机MacOS不仅仅只是运行一个MacOS。还可以进行文件互通的,可以用如下命令设置:

# on Linux/Windows mkdir ~/mnt/osx sshfs user@localhost:/ -p 50922 ~/mnt/osx # wait a few seconds, and ~/mnt/osx will have full rootfs mounted over ssh, and in userspace # automated: sshpass -p sshfs user@localhost:/ -p 50922 ~/mnt/osx

甚至你愿意折腾,可以尝试把你的iPhone通过USB直通连接到这个MacOS。

我这里制作了一个安装运行测试,更多的折腾大家可以自己去试试!

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
35评论

  • 精彩
  • 最新
  • 已经不是常规的docker容器了,算kvm虚拟机容器,否则内核问题无法解决

    校验提示文案

    提交
    正解

    校验提示文案

    提交
    收起所有回复
  • 群晖虚拟机里面的docker可以装吗

    校验提示文案

    提交
    没有折腾过,能走kvm流程的话可以试试,但群晖性能不强

    校验提示文案

    提交
    有docker群晖项目

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • windows11上可以安装吗?

    校验提示文案

    提交
    可以,我就是windows11开启wsl安装的

    校验提示文案

    提交
    收起所有回复
  • 虚拟机套虚拟机?

    校验提示文案

    提交
    虚拟机套娃本来就是常规操作,但这不是本文重点

    校验提示文案

    提交
    虚拟机嵌套是部分cpu 独占,很多都不支持的

    校验提示文案

    提交
    收起所有回复
  • 这个比虚拟机直接装更麻烦吧

    校验提示文案

    提交
  • 这个显卡驱动没有解决,实际应用还是会卡的

    校验提示文案

    提交
  • 不知道能不能用来降级IOS6

    校验提示文案

    提交
  • 不认硬件?任何主板和显卡都免驱?

    校验提示文案

    提交
    虚拟机没事的

    校验提示文案

    提交
    只是没有显卡硬件加速的残废

    校验提示文案

    提交
    收起所有回复
  • 能否显卡直通?

    校验提示文案

    提交
  • 味道可以的

    校验提示文案

    提交
  • 安装后,怎么再次进入这个系统啊?

    校验提示文案

    提交
  • 显存多大,不卡吗?

    校验提示文案

    提交
    3m,装完tools 会变128

    校验提示文案

    提交
    收起所有回复
  • 为啥没人玩麒麟系统?

    校验提示文案

    提交
  • 有大佬知道这个怎么解决吗

    校验提示文案

    提交
  • root@YUNJIAN:~# docker run -it --device /dev/kvm -p 50922:10022 -v /tmp/.X11-unix:/tmp/.X11-unix -e "DISPLAY=${DISPLAY:-:0.0}" sickcodes/docker-osx:latest
    docker: Error response from daemon: driver failed programming external connectivity on endpoint wizardly_johnson (9ee4270d097e6e0d490c6cf4233057573be5d31db78fa91d980b087d7fd8ecd1): Error starting userland proxy: listen tcp4 0.0.0.0:50922: bind: address already in use.
    ERRO[0001] error waiting for container: context canceled

    校验提示文案

    提交
    换个端口,50922换成其他的

    校验提示文案

    提交
    收起所有回复
  • 这用着会舒畅吗?怕是开几个网页都够呛吧?

    校验提示文案

    提交
    凭什么这么说?

    校验提示文案

    提交
    虚拟机套虚拟机,CPU,内存本身就已经损耗,再加上高版本的Mac对硬件资源要求就高,那肯定卡得很啊,M1版本的MacMini8G内心都够卡的了。更不要说套娃虚拟Mac

    校验提示文案

    提交
    收起所有回复
  • 学习了

    校验提示文案

    提交
  • 太会玩了

    校验提示文案

    提交
  • 这个美显卡,用处不大

    校验提示文案

    提交
  • 镜像拉取不了了,谁有拉取好的分享一下 [期待]

    校验提示文案

    提交
    随便换个试试
    docker run -it \
    --device /dev/kvm \
    -p 50922:10022 \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e "DISPLAY=${DISPLAY:-:0.0}" \
    dickhub/docker-osx:latest

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
508
扫一下,分享更方便,购买更轻松