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 密码是空 可以设置一下 密码

到这个页面 就算好了

相关推荐
隔窗听雨眠1 天前
生产级Kubernetes集群部署完全指南:从kubeadm到高可用架构落地
容器·架构·kubernetes
小小洋洋1 天前
OpenWrt 从U盘迁移到内置 eMMC,并完成扩容与 Docker 安装
java·docker·eureka
Eloudy1 天前
docker build 与 docker buildx build 的应用场景
docker·构建
瞬间&永恒~1 天前
【Docker】(三)联合文件系统UnionFS + Overlay2
docker·云原生·容器
趣味科技1 天前
记录修复EAGET忆捷移动硬盘损坏
windows·数据分析·硬件工程
数据知道1 天前
主机入侵检测(HIDS):OSSEC / Wazuh 部署与规则编写
安全·网络安全·docker
FriendshipT1 天前
Ubuntu 20.04 下使用 Ollama 本地部署 AI 大模型
linux·人工智能·python·深度学习·ubuntu
A24207349301 天前
Vue 3 + TypeScript:核心优势与开发注意事项详解
vue.js·ubuntu·typescript
bellus-1 天前
win11使用ubuntu 26.04
linux·运维·ubuntu
逐光老顽童1 天前
第 5 章:搞懂 K8s Service:从 ClusterIP 到负载均衡
docker·云原生·容器