Docker运行macOS教程:Linux系统完整配置与部署指南
7 min read

前提条件
在开始之前,请确保您满足以下要求:
-
安装 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 设置或
其他资源
- GitHub 仓库:https://github.com/dockur/macos
- Kubernetes 支持:您可以通过以下命令在 Kubernetes 中部署 macOS:
kubectl apply -f https://raw.githubusercontent.com/dockur/macos/refs/heads/master/kubernetes.yml
- 相关项目:
- dockur/windows:类似项目,用于在 Docker 中运行 Windows。
- sickcodes/Docker-OSX:另一个运行 macOS 的 Docker 项目。
更多文章

Qwen-TTS重磅发布:阿里云方言语音合成新巅峰,API极速体验!

Google 发布 Gemini CLI:终极开源 AI 终端工具,挑战 Claude Code

MinIO社区版"挥刀自宫":Web管理功能全砍,社区信任岌岌可危

LangChain Open Agent Platform — 无代码构建智能代理的开源平台

GitHub Copilot Chat扩展开源 | Vibe Coding趋势与AI代码编辑器市场分析

py-xiaozhi 完全入门指南 - 无需硬件体验 AI 小智语音功能的 Python 开源客户端

Chrome(Chromium) 历史版本离线安装包下载指南

OpenAI豪掷30亿收购Windsurf:AI编码赛道掀巨浪

Qwen3参数概览:从0.6B到235B,混合推理与多模态的极致平衡(附本地部署参数推荐)