蓝戒博客

  • 首页
  • 研发说
  • 架构论
  • 效能录
  • AI谈
  • 随笔集
智构苍穹
融合 AI、架构与工程实践,沉淀方法论,构建可持续的技术价值。
  1. 首页
  2. 效能录
  3. 正文

在 Docker 中运行完整操作系统:Windows / macOS / Linux

2025年12月21日 84点热度 0人点赞 0条评论

提到 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(推荐)

YAML
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

Bash
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 示例

YAML
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

安装流程(首次启动)

  1. 打开 http://localhost:8006
  2. 进入 Disk Utility
  3. 格式化最大磁盘为 APFS
  4. 选择 Reinstall macOS
  5. 创建用户,跳过 Apple ID
  6. 安装完成后进入桌面

⚠️ 合法性说明(非常重要)

技术上是可行的,但 法律上有前提:

macOS 最终用户许可协议规定:
只能运行在 Apple 官方硬件上

也就是说:

  • ✅ 在 Mac 设备上跑这个容器 → 合规
  • ❌ 在普通 PC / 云服务器上跑 → 违反条款

项目本身是合法的,但使用方式需要自行判断风险。


四、在 Docker 中运行 Linux 桌面系统

如果你只是想跑一个 Linux GUI 桌面,那其实更简单。

🐧 项目推荐:qemus/qemu

开源地址
👉 https://github.com/qemus/qemu

这是一个通用型 QEMU Docker 容器,适合运行各种 Linux 发行版。


Docker Compose 示例

YAML
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 …
YAML
environment:
  BOOT: "mint"

启动后访问:

http://localhost:8006

直接进入安装界面,用键盘鼠标操作即可。


五、这些方案适合什么场景?

✅ 非常适合

  • CI / 自动化测试(跨 OS)
  • 前端 / 桌面软件兼容性验证
  • 教学 / 演示环境
  • 快速体验老系统(XP / Win7)
  • 本地“伪云桌面”

❌ 不适合

  • 高并发生产环境
  • 长期稳定桌面主力机
  • 替代传统虚拟化平台(ESXi / Proxmox)

六、总结:Docker 的边界,其实比你想得更大

以前我们说:

Docker 适合跑服务,不适合跑系统

但现在你会发现:

  • Docker 正在变成 虚拟化的分发层
  • QEMU/KVM + Docker = 超低门槛虚拟机
  • 一条命令就能启动一个完整 OS

它不一定取代传统虚拟化,但一定拓宽了你的工具箱。

标签: Docker桌面系统 Docker虚拟机 Docker运行Linux Docker运行macOS Docker运行Windows
最后更新:2025年12月21日

cywcd

我始终相信,技术不仅是解决问题的工具,更是推动思维进化和创造价值的方式。从研发到架构,追求极致效能;在随笔中沉淀思考,于 AI 中对话未来。

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

cywcd

我始终相信,技术不仅是解决问题的工具,更是推动思维进化和创造价值的方式。从研发到架构,追求极致效能;在随笔中沉淀思考,于 AI 中对话未来。

最新 热点 随机
最新 热点 随机
Island 架构与部分水合:重新思考前端性能与交互的边界 Biome:下一代前端一体化工具链,正在取代 Prettier + ESLint? 生产环境下的 Token 前端存储方案与安全权衡 程序员的 PPT 终极形态:Slidev 演示文稿工具 Bun:下一代 JavaScript 一体化工具链全面解析 架构师应该具备的专业素养:如何成为一名优秀的系统架构设计师
Rsbuild:由 Rspack 驱动的新一代高性能 Web 构建工具字节跨平台框架 Lynx 开源:为 Web 开发者带来原生级跨端体验的全新选择TresJS:用 Vue 构建现代化交互式 3D 体验npm 安全更新:把握令牌变更与发布体系的迁移参考指南Code Inspector:页面开发提效的神器vue3-touch-events:专为 Vue 3 设计的强大手势事件库
jquery插件Bootstrap Table使用方法详解 jquery-Cookie插件jquery.cookie.js的用法 Interact.js:一个轻量级且强大的拖拽、缩放与手势库 js多浏览器兼容注意写法整理 🧩 Mock.js 数据 Mock 实战技巧与最佳实践 NativeScript:用 JavaScript / TypeScript 构建真正的原生应用
最近评论
渔夫 发布于 2 个月前(11月05日) 学到了,感谢博主分享
沙拉小王子 发布于 8 年前(11月30日) 适合vue入门者学习,赞一个
沙拉小王子 发布于 8 年前(11月30日) 适合vue入门者学习,赞一个
cywcd 发布于 9 年前(04月27日) 请参考一下这篇文章http://www.jianshu.com/p/fa4460e75cd8
cywcd 发布于 9 年前(04月27日) 请参考一下这篇文章http://www.jianshu.com/p/fa4460e75cd8

COPYRIGHT © 2025 蓝戒博客_智构苍穹-专注于大前端领域技术生态. ALL RIGHTS RESERVED.

京ICP备12026697号-2