版本比较
标识
- 该行被添加。
- 该行被删除。
- 格式已经改变。
简介
该项目基于 https://github.com/dockur/windows
信息 |
---|
通过容器运行 windows 需要借助 KVM 模块,Photon 是没有 KVM 的内核模块的。因此适用于 Centos 或 Ubuntu 的容器宿主机环境。 |
完成操作系统和 Docker 的准备后,需要检查操作系统是否支持 KVM,需要先安装 cpu-checker
。
代码块 | ||
---|---|---|
| ||
sudo apt install cpu-checker -y |
然后,执行 kvm-ok
,顺利的话,将能够看到类似下面的日志输出:
代码块 | ||
---|---|---|
| ||
# sudo kvm-ok INFO: /dev/kvm exists KVM acceleration can be used |
windows.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: VERSION: "http://winiso/win11x64.iso" MANUAL: "N" volumes: - ./win:/storage depends_on: - winiso winiso: image: nginx:alpine container_name: winiso restart: on-failure volumes: - ./iso:/usr/share/nginx/html |
常用技巧
调整 Windows 容器资源配置
默认情况下, Windows 容器会使用 vCPU x2、4GB 内存、64G 的磁盘空间来满足 Win11 的最低安装需求。可以根据自己的实际需求,来动态的调整容器的硬件资源限制。
代码块 | ||
---|---|---|
| ||
environment: RAM_SIZE: "8G" CPU_CORES: "4" DISK_SIZE: "256G" |
比如,在上面的配置中,调整 CPU 核心数到 4,内存到 8GB,磁盘到 256GB。
为容器分配独立的 IP 地址
默认情况下,Docker 会共享宿主机的 IP,如果我们想要让容器拥有独立的 IP 地址,需要先创建一个 macvlan 网络:
代码块 | ||
---|---|---|
| ||
docker network create -d macvlan \ --subnet=192.168.0.0/24 \ --gateway=192.168.0.1 \ --ip-range=192.168.0.100/28 \ -o parent=eth0 vlan |
创建完网卡后,调整上面使用的容器配置,根据自己的需求指定容器 IP 即可:
代码块 | ||
---|---|---|
| ||
services: windows: container_name: windows ..<snip>.. networks: vlan: ipv4_address: 192.168.0.100 networks: vlan: external: true |
使用一整块磁盘
如果主机上有多块磁盘,或者想将某一块磁盘完整的分配给 Windows,可以采用下面的方法,其中 DEVICE 将作为你的主磁盘:
代码块 | ||
---|---|---|
| ||
environment: DEVICE: "/dev/sda" DEVICE2: "/dev/sdb" devices: - /dev/sda - /dev/sdb |
在 Docker 中的 Windows 使用 USB 设备
我们首先需要使用 lsusb 来获取 USB 设备的 VendorID 和 ProductID ,然后将这些信息添加到配置中:
代码块 | ||
---|---|---|
| ||
environment: ARGUMENTS: "-device usb-host,vendorid=0x1234,productid=0x1234" devices: - /dev/bus/usb |
目录 |
---|