測試用的 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都有
例如
- 手動安裝
environment:
MANUAL: "Y"
- 接上家裡的路由器
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 安裝與使用。這樣的方式一般確實會犧牲效能,但是操作好像滿方便的。先留著目前測試環境,會用一陣子看看。