ubuntu 系统中 使用docker 制作 Windows 系统,从此告别 vmware虚拟机

我的系统是 ubuntu 24

前期准备工作:

  1. 安装docker
  2. docker pull 或者 手动制作镜像 docker build 的话 必须要 科学上网, 好像阿里镜像都下不下来。
  3. 需要 知道 docker 和docker compose 命令的使用方式

我是给docker 挂了 http代理 如果你能pull下来镜像 可以跳过 这些步骤

在这个文件夹下 创建一个 http-proxy.conf 如果没有 手动创建 文件夹和文件 即可

bash 复制代码
cd /etc/systemd/system/docker.service.d/ 

http-proxy.conf 文件内容

bash 复制代码
[Service]

Environment="HTTP_PROXY=http://ip:33110/"

Environment="HTTPS_PROXY=http://ip:33110/"

Environment="NO_PROXY=localhost,127.0.0.1"

重新加载

bash 复制代码
sudo systemctl daemon-reload

重启docker

bash 复制代码
sudo systemctl restart docker

使用的docker 镜像是 dockur/windows

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

可以直接 docker pull 拉取

或者 自己 下载源码 自己 制作镜像

制作镜像命令

bash 复制代码
docker build -t dockurr/windows .

然后 先自定义一个 docker 网卡 因为我想让让docker 安装的windows 和我电脑用的一个网段

需要改动的 是 --subnet --gateway --ip-range parent 这些参数 按自己电脑的网段 修改

bash 复制代码
docker network create -d macvlan --subnet=192.168.31.0/24  --gateway=192.168.31.1 --ip-range=192.168.31.128/28  -o parent=enp3s0 vlan

创建后 查看 :docker network ls

接下来就是制作 docker-compose.yml 文件

bash 复制代码
version: "3"
services:
  windows:
    image: json-windows
    container_name: win10
    networks:
      vlan:
        ipv4_address: 192.168.31.129      
    devices:
      - /dev/kvm
    cap_add:
      - NET_ADMIN
    ports:
      - 8006:8006
      - 3389:3389/tcp
      - 3389:3389/udp
    stop_grace_period: 2m
    restart: on-failure
    volumes:
      - /home/windows/winhome:/home
    environment:
      VERSION: "win7"
      LANGUAGE: "cn"   
      MANUAL: "N"
      RAM_SIZE: "8G"
      CPU_CORES: "4"
      DISK_SIZE: "150G"    
networks:
  vlan:
    external: true  # 使用外部已存在的网络

然后使用 docker compose up 或 docker compose -d 启动服务

这里面的参数 大家按需修改 即可

容器名字: container_name

比如 配置的ip地址 ipv4_address

挂在的 目录 volumes

cpu: CPU_CORES

内存:RAM_SIZE

磁盘大小 :DISK_SIZE

最重要的是 这个参数

VERSION: "win7"

我安装的是win7 这样写的 这个是镜像带的系统 可以这样写

LANGUAGE : "cn" 安装的镜像的 语言

这个参数 可以在源码里 找到 大家按需 选择即可

支持我们调整使用的值包含:win11、win10、ltsc10、win81、win7、vista、winxp、2022、2019、2016、2012、2008

我测试过 win10 会安装失败 有可能是 镜像 或者我电脑带不动 我对系统没有要求 所以选择了 win7

如果你用官方的提供的 windows 镜像 需要网络好 有可能会下载失败 毕竟镜像文件几个G

如果你不想用官方的 也可以用自己 下载的镜像文件 比如你下载了 windows10.iso文件

这个值可以填写

VERSION: "http:192.168.31.66:8080/windows10.iso"

为什么是http 地址呢

我刚开始写的 磁盘的 地址 /home/windows10.iso

启动的时候 会一直报错 找不到镜像

所以我借助 nginx 做了 web 连接 这样下载 即可

使用 docker compose -d 启动后

出现 一个 http:localhost:8006 这样地址 就说明可以了

如果使用的是 -d 启动的 查看docker 日志 命令 可以看到他启动到哪里了

bash 复制代码
docker logs -f --tail=300 win10

然后通过你在 ipv4_address 写的ip 地址 加8006 端口 就可以在 浏览器里看到 windows系统安装页面了

等他安装好后 用 用远程连接工具连接 就可以用了

他默认的 创建管理员 账号是 docker 密码是空 可以设置一下 密码

到这个页面 就算好了

相关推荐
生活爱好者!2 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
MC皮蛋侠客2 小时前
uv 系列(七):CI/CD、Docker 与私有索引——生产级交付
python·ci/cd·docker·uv
王维同学2 小时前
[原创][Windows C++]LSA 认证、安全与通知包的注册表枚举
c++·windows·安全
YCOSA20253 小时前
雨晨 Windows 11 IOT 企业版 LTSC 24H2 轻装 2合1 26100.8968
windows·物联网
Hui Baby3 小时前
K8S使用CRD和控制器简单应用
云原生·容器·kubernetes
汤姆yu3 小时前
CodeGeeX 4完整安装与实操使用全指南
人工智能·windows·ai·智能体·视频模型
通信小小昕3 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
用户233376852185 小时前
Docker 端口"时通时不通"的排查实战
docker
吐了啊取名字太难6 小时前
美颜系统AI修图本地跑并支持Mac、win、安卓、iOS不卡顿
android·人工智能·windows·数码相机·mac·ai编程
做个文艺程序员6 小时前
Linux第22篇:用Docker容器化你的Java SaaS应用:一次构建,随处运行
java·docker·容器