最近由于开发需求,需要在macOS平台下测试和验证开发的应用。奈何手头上没有苹果电脑,又囊中羞涩。于是考虑在单位工作站上安装macOS虚拟机以解燃眉之急。
之前尝试了通过VirtualBox安装,无奈以失败告终。后来看到有大佬通过Docker安装macOS12,遂尝试下。
1. 安装Docker
通过以下命令安装Docker Engine。
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
需要确保宿主机上的KVM虚拟化已开启并已添加权限,运行以下命令。
sudo chmod 666 /dev/kvm
2. 拉取macOS镜像
运行以下命令拉取 dockurr/macos 镜像:
docker pull dockurr/macos
国内可以通过镜像地址加速3。
docker pull docker.1ms.run/dockurr/macos
3. Docker运行权限问题
如果出现permission denied的问题,除了提权sudo运行外,可以将当前用户加入docker组内,重启后解决。
# 检查是否存在 Docker 用户组
cat /etc/group | grep docker
# 如果不存在,则创建 Docker 用户组
sudo groupadd docker
# 将当前用户添加到 Docker 用户组
sudo gpasswd -a $USER docker
# 更新用户组
newgrp docker
4. 运行 Docker 容器
使用以下命令启动 macOS 容器,可以将其保存为脚本方便调用。如果是国内使用镜像地址下载的话,记得把最后的dockurr/macos换成带镜像地址的链接,例如docker.1ms.run/dockurr/macos。
docker run -it --rm --name macos -p 8006:8006 --device=/dev/kvm --device=/dev/net/tun --cap-add NET_ADMIN -v "${PWD:-.}/macos:/storage" --stop-timeout 120 dockurr/macos
如果是第一次运行上面的命令或脚本,会从源上下载恢复镜像,然后进入安装。
5. 通过 Web 浏览器访问
启动容器后,打开浏览器访问 http://localhost:8006,将入 macOS 的安装界面。