Py学习  »  docker

在 Docker 里跑 Windows?有点离谱,但真能跑~

运维 • 4 天前 • 155 次点击  

来自公众号:菜鸟教程

做开发我平时更多用 macOS,但有时候免不了得在 Windows 上跑点程序,平常的做法当然是开虚拟机装个 Windows,不过有时候真觉得太慢了,启动久,安装还麻烦,如果有更轻松的解决方法就好了。

有一个开源项目,听起来有点离谱——在 Docker 里跑 Windows

开源地址:https://github.com/dockur/windows

现在 Star 数都来到了 45k+,可见欢迎程度:

没错,不是装虚拟机,不是远程桌面,是直接在 Docker 容器里跑一整台 Windows,而且还能在浏览器里打开桌面。

先说 Docker,它本质上是一个轻量级虚拟化工具。简单理解,就是一种把应用和运行环境打包在一起的容器。

容器里有程序运行需要的所有东西:代码、依赖库、配置一应俱全,启动快,占用少,不像传统虚拟机那么笨重。

举个例子,你用 Docker 可以在 Linux 上直接跑 MySQL、Nginx 或 Python,甚至还能隔离不同的环境,互不干扰。

通常 Docker 用来跑 Linux 应用,但 dockur/windows 就有点魔幻——它居然把 Windows 装进 Docker 里,让你也能在容器里跑 Windows 系统。

支持的 Windows 发行版:

安装与使用指南

1、使用 Docker Compose

创建 docker-compose.yml 文件,配置信息如下:

services:  windows:    image: dockurr/windows    container_name: windows    environment:      VERSION: "11"    devices:      - /dev/kvm      - /dev/net/tun    cap_add:      - NET_ADMIN    ports:      - 8006:8006      - 3389:3389/tcp      - 3389:3389/udp    volumes:      - ./windows:/storage    restart: always    stop_grace_period: 2m

2、使用 Docker CLI

不想写 Compose 文件,也可以直接用命令启动:

docker run -it --rm --name windows \-p 8006:8006 \--device=/dev/kvm --device=/dev/net/tun \--cap-add NET_ADMIN \-v "${PWD:-.}/windows:/storage" \--stop-timeout 120 dockurr/windows

3. 通过 Kubernetes

直接应用官方配置文件即可:

kubectl apply -f https://raw.githubusercontent.com/dockur/windows/refs/heads/master/kubernetes.yml

默认会安装 Windows 11 专业版,如果想安装其他版本,只需在配置文件里加上 VERSION 环境变量即可,例如:

volumes:  - ./windows:/storage

配置好后执行:

docker-compose up -d

几分钟后打开浏览器访问 http://localhost:8006,就能看到 Windows 桌面。

提取 Windows 11 映像:

提取完成后,就开始构建:

然后开始安装:

之后就可以看到 Windows 系统了:







---END---

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/187821