提到 Docker,大多数人的第一反应是:
Docker = 轻量级容器 = 跑单个服务进程
但你可能没意识到的是:
现在,你甚至可以在 Docker 容器里跑一个完整的操作系统。
- Windows 11 / XP / Server
- macOS Sonoma / Sequoia
- Linux Mint / Ubuntu / Arch …
而且:
- 带 GUI 桌面
- 支持浏览器访问
- 支持 KVM 硬件加速
- 一条
docker run就能启动
这篇文章就来聊聊:
如何在 Docker 中运行 Windows、macOS 和 Linux 桌面系统,以及它们适合什么场景。
一、Docker 里跑操作系统,原理是什么?
先澄清一个关键点:
这不是“容器化操作系统”
而是 Docker + QEMU/KVM = 在容器中运行虚拟机
这些项目的本质是:
- Docker 负责:
- 镜像分发
- 资源限制(CPU / 内存 / 磁盘)
- 网络与端口映射
- QEMU/KVM 负责:
- 模拟 / 虚拟完整硬件
- 启动真正的操作系统内核
- Web Viewer / VNC:
- 让你直接在浏览器里操作系统桌面
一句话总结:
Docker 只是“外壳”,真正跑的是虚拟机。
二、在 Docker 中运行 Windows 系统
🚀 项目推荐:dockur/windows
开源地址
👉 https://github.com/dockur/windows
这是目前最成熟、最“傻瓜式”的 Windows Docker 虚拟机方案之一。
支持的 Windows 版本
- Windows 11 / 10 / 8.1 / 7
- Windows XP / 2000
- Windows Server 系列
使用方式一:Docker Compose(推荐)
services:
windows:
image: dockurr/windows
container_name: windows
environment:
VERSION: "11" # 指定 Windows 版本
devices:
- /dev/kvm # 启用 KVM 硬件加速
- /dev/net/tun
cap_add:
- NET_ADMIN
ports:
- 8006:8006 # Web Viewer
- 3389:3389/tcp # RDP
- 3389:3389/udp
volumes:
- ./windows:/storage
restart: always
stop_grace_period: 2m
启动后访问:
http://localhost:8006
使用方式二:Docker CLI
docker run -it --rm \
--name windows \
-e "VERSION=11" \
-p 8006:8006 \
--device=/dev/kvm \
--device=/dev/net/tun \
--cap-add NET_ADMIN \
-v "${PWD:-.}/windows:/storage" \
--stop-timeout 120 \
docker.io/dockurr/windows
使用体验
- 启动容器 → 打开浏览器
- 全自动下载 + 安装 Windows
- 无需 ISO、无需点“下一步”
- 安装完成后直接看到桌面
一句话形容:
像在云厂商上点了一台 Windows 云主机,只是它跑在你的 Docker 里。
三、在 Docker 中运行 macOS(Sonoma / Sequoia)
🍎 项目推荐:dockur/macos
开源地址
👉 https://github.com/dockur/macos
这是一个在 Docker 容器中运行 macOS 的 QEMU/KVM 方案。
核心特性
- KVM 硬件加速
- 浏览器 Web Viewer
- 自动下载 macOS 安装镜像
- 支持 macOS 14 / 15
Docker Compose 示例
services:
macos:
image: dockurr/macos
container_name: macos
environment:
VERSION: "14" # macOS Sonoma
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
安装流程(首次启动)
- 打开
http://localhost:8006 - 进入 Disk Utility
- 格式化最大磁盘为 APFS
- 选择 Reinstall macOS
- 创建用户,跳过 Apple ID
- 安装完成后进入桌面
⚠️ 合法性说明(非常重要)
技术上是可行的,但 法律上有前提:
macOS 最终用户许可协议规定:
只能运行在 Apple 官方硬件上
也就是说:
- ✅ 在 Mac 设备上跑这个容器 → 合规
- ❌ 在普通 PC / 云服务器上跑 → 违反条款
项目本身是合法的,但使用方式需要自行判断风险。
四、在 Docker 中运行 Linux 桌面系统
如果你只是想跑一个 Linux GUI 桌面,那其实更简单。
🐧 项目推荐:qemus/qemu
开源地址
👉 https://github.com/qemus/qemu
这是一个通用型 QEMU Docker 容器,适合运行各种 Linux 发行版。
Docker Compose 示例
services:
qemu:
image: qemux/qemu
container_name: qemu
environment:
BOOT: "mint" # 指定 Linux 发行版
devices:
- /dev/kvm
- /dev/net/tun
cap_add:
- NET_ADMIN
ports:
- 8006:8006
volumes:
- ./qemu:/storage
restart: always
stop_grace_period: 2m
支持的系统类型
- Linux Mint
- Ubuntu
- Debian
- Arch
- 自定义 ISO / qcow2 / img / vmdk …
environment:
BOOT: "mint"
启动后访问:
http://localhost:8006
直接进入安装界面,用键盘鼠标操作即可。
五、这些方案适合什么场景?
✅ 非常适合
- CI / 自动化测试(跨 OS)
- 前端 / 桌面软件兼容性验证
- 教学 / 演示环境
- 快速体验老系统(XP / Win7)
- 本地“伪云桌面”
❌ 不适合
- 高并发生产环境
- 长期稳定桌面主力机
- 替代传统虚拟化平台(ESXi / Proxmox)
六、总结:Docker 的边界,其实比你想得更大
以前我们说:
Docker 适合跑服务,不适合跑系统
但现在你会发现:
- Docker 正在变成 虚拟化的分发层
- QEMU/KVM + Docker = 超低门槛虚拟机
- 一条命令就能启动一个完整 OS
它不一定取代传统虚拟化,但一定拓宽了你的工具箱。
文章评论