在开始之前,请确保您满足以下要求:
- 安装 Docker:
- 确保您的系统已安装 Docker Engine。可以通过以下命令安装(以 Ubuntu 为例):
sudo apt update sudo apt install docker.io sudo systemctl start docker sudo systemctl enable docker
- 确保您的系统已安装 Docker Engine。可以通过以下命令安装(以 Ubuntu 为例):
- 依赖设备:
- 确保系统支持
/dev/kvm和/dev/net/tun设备。 - 您可能需要添加权限,运行以下命令:
sudo chmod 666 /dev/kvm
- 确保系统支持
- 磁盘空间:
- 准备足够的磁盘空间(建议至少 64GB)用于存储 macOS 镜像和数据。
安装步骤
1. 拉取 Docker 镜像
运行以下命令拉取 dockurr/macos 镜像:
docker pull dockurr/macos
2. 运行 Docker 容器
使用以下命令启动 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
参数说明:
-it:以交互模式运行容器。--rm:容器退出后自动删除。--name macos:容器名称为macos。-p 8006:8006:映射主机端口 8006 到容器,用于 Web 访问。--device=/dev/kvm和--device=/dev/net/tun:启用 KVM 和网络设备。--cap-add NET_ADMIN:授予容器网络管理权限。-v "${PWD:-.}/macos:/storage":将当前目录下的macos文件夹挂载到容器中的/storage,用于存储 macOS 数据。--stop-timeout 120:设置容器停止的超时时间为 120 秒。
可选环境变量:
VERSION:指定 macOS 版本,默认为 macOS 13(Ventura)。支持的版本包括:11(Big Sur)12(Monterey)13(Ventura)14(Sonoma)15(Sequoia,部分功能如 Apple 账户登录暂不支持)。 示例:
docker run -it --rm --name macos -p 8006:8006 --device=/dev/kvm --device=/dev/net/tun --cap-add NET_ADMIN -v "${PWD:-.}/macos:/storage" -e VERSION="ventura" --stop-timeout 120 dockurr/macos
3. 通过 Web 浏览器访问
- 启动容器后,打开浏览器,访问
http://localhost:8006。 - 您将进入 macOS 的安装界面。
4. 配置磁盘
- 在 macOS 安装界面中,选择 Disk Utility。
- 找到最大的 Apple Inc. VirtIO Block Media 磁盘。
- 点击 Erase 按钮,将磁盘格式化为 APFS 文件系统,并为磁盘命名(任意名称)。
- 关闭 Disk Utility 窗口。
5. 安装 macOS
- 点击 Reinstall macOS 开始安装过程。
- 当提示选择安装目标时,选择您刚刚格式化的磁盘。
- 等待文件复制完成(可能需要一些时间,具体取决于网络和硬件性能)。
- 安装完成后,设置您的地区、语言和账户信息。
6. 完成设置
安装完成后,您将进入 macOS 桌面环境。您可以通过浏览器继续访问 macOS,或者通过 VNC(端口 5900)连接到容器。
VNC 连接(可选):
- 使用 VNC 客户端(如 VNC Viewer)连接到
localhost:5900。 - 确保容器启动时映射了 5900 端口(TCP 和 UDP):
-p 5900:5900/tcp -p 5900:5900/udp
7. 享受 macOS
安装完成后,您可以在 Docker 容器中运行 macOS,体验几乎原生的 macOS 系统。别忘了给 dockur/macos 仓库点个星以支持开发者!
使用 Docker Compose(可选)
如果您更喜欢使用 Docker Compose,可以创建一个 docker-compose.yml 文件,内容如下:
services:
macos:
image: dockurr/macos
container_name: macos
environment:
- VERSION=13
devices:
- /dev/kvm
- /dev/net/tun
cap_add:
- NET_ADMIN
ports:
- 8006:8006
- 5900:5900/tcp
- 5900:5900/udp
volumes:
- ./macos:/storage
restart: always
stop_grace_period: 2m
保存后,运行以下命令启动容器:
docker-compose up -d
注意事项
- 法律合规性:
- 该项目仅包含开源代码,不分发任何受版权保护的材料,也不绕过版权保护措施。
- 根据 Apple 的 EULA,macOS 只能在 Apple 硬件上运行。在非 Apple 硬件上运行可能违反条款,请确保合规使用。
- macOS 版本支持:
- 默认安装 macOS 13(Ventura)。
- macOS 15(Sequoia)支持尚不完善,可能无法登录 Apple 账户。
- 性能优化:
- 如果遇到 KVM 相关错误,尝试在
docker-compose.yml中添加privileged: true或在docker run命令前添加sudo。 - 确保主机有足够的 CPU 和内存资源以支持虚拟化。
- 如果遇到 KVM 相关错误,尝试在
- 存储管理:
- 数据默认存储在
./macos目录中。您可以通过修改-v参数更改存储位置。 - 如果需要更多磁盘空间,可以在
docker-compose.yml中添加DISK_SIZE环境变量(例如DISK_SIZE=128G)。
- 数据默认存储在
- 网络配置:
- 容器支持通过端口 8006(Web 访问)和 5900(VNC)进行连接。
- 确保防火墙未阻止这些端口。
- 致谢:
- 该项目感谢
seitenca的贡献,以及OpenCore和KVM-OpenCore项目提供的支持。
- 该项目感谢
故障排除
- KVM 错误:
- 如果容器启动时提示 KVM 相关错误,检查
/dev/kvm设备是否存在并具有正确权限:ls -l /dev/kvm sudo chmod 666 /dev/kvm - 确保未使用 Docker Desktop,且您的 CPU 支持虚拟化(VT-x/AMD-V)。
- 如果容器启动时提示 KVM 相关错误,检查
- 端口冲突:
- 如果端口 8006 或 5900 被占用,修改
docker run或docker-compose.yml中的端口映射,例如-p 8080:8006。
- 如果端口 8006 或 5900 被占用,修改
- 安装失败:
- 确保网络连接稳定,macOS 安装需要下载较大的文件。
- 检查磁盘空间是否充足。
- 性能问题:
- 增加容器分配的 CPU 和内存资源(通过 Docker 设置或
docker-compose.yml中的resources配置)。
- 增加容器分配的 CPU 和内存资源(通过 Docker 设置或
- THE END -
最后修改:2025年10月28日06:50
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://www.fanooo.com/archives/1507


共有 0 条评论