測試用的 Windows

測試用的 Windows

最近有點人氣的 專案
https://github.com/dockur/windows

先用 docker 指令嘗試一下

docker run -it --rm --name windows -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 dockurr/windows

會看到訊息

BdsDxe: failed to load Boot0002 "UEFI QEMU QEMU HARDDISK " from PciRoot(0x0)/Pci(0xA,0x0)/Scsi(0x0,0x0): Not Found
windows | BdsDxe: loading Boot0001 "UEFI QEMU QEMU CD-ROM " from PciRoot(0x0)/Pci(0x5,0x0)/Scsi(0x0,0x0)
windows | BdsDxe: starting Boot0001 "UEFI QEMU QEMU CD-ROM " from PciRoot(0x0)/Pci(0x5,0x0)/Scsi(0x0,0x0)

回應this normal,所以不用管他。

然後開瀏覽器連到 127.0.0.1:8006

一開始會看到自動安裝、重開機,最後可以登入使用

嘗試用 docker-compose

docker-compose 就是比較方便!

寫 docker-compose.yml

version: "3"
services:
  windows:
    image: dockurr/windows
    container_name: windows
    devices:
      - /dev/kvm
    cap_add:
      - NET_ADMIN
    ports:
      - 8006:8006
      - 3389:3389/tcp
      - 3389:3389/udp
    stop_grace_period: 2m
    restart: on-failure
    environment:
      RAM_SIZE: "16G"
      CPU_CORES: "8"
      DISK_SIZE: "256G"
    volumes:
      - /home/ubuntu/tmp/win:/storage

再用docker-compose up -d 去啟動安裝;之後再啟動就用docker-compose start 就可以開機。

很多需要的資訊FAQ都有

例如

  1. 手動安裝
environment:
  MANUAL: "Y"
  1. 接上家裡的路由器
environment:
  DHCP: "Y"
devices:
  - /dev/vhost-net
device_cgroup_rules:
  - 'c *:* rwm'

等等。

心得

就是方便快速弄的臨時的windows 還可以選版本,但是我覺得效能好像有打折...,還是 windows 不該要求效能...。但這樣的時綽方式也滿有趣的,看 Dockerfile 可以知道是用 scratch / debian base image,然後安裝一些套件,還有 qemux/qemu-docker:4.18 當作基礎在用。之後就是用 qemu 來啟動 windows 安裝與使用。這樣的方式一般確實會犧牲效能,但是操作好像滿方便的。先留著目前測試環境,會用一陣子看看。