Docker 运行 windows 容器

温馨提醒

环境准备

  • 检查系统是否支持 KVM

    1
    2
    
    # 安装 cpu-checker
    apt install cpu-checker -y

    执行kvm-ok,正常情况,可以看到如下输出

    1
    2
    3
    
    root@ubuntu:~# kvm-ok
    INFO: /dev/kvm exists
    KVM acceleration can be used

如果输出如下信息,表示 CPU 不支持虚拟化,查看 BIOS 是否禁用了虚拟化功能

1
2
3
root@ubuntu:~# kvm-ok
INFO: Your CPU does not support KVM extensions
KVM acceleration can NOT be used

安装 Docker

  • 添加仓库

    1
    2
    3
    4
    5
    6
    7
    
    # 添加国内源密钥
    curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
    # 添加国内仓库
    echo \
    "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • 安装最新版 Docker

    1
    2
    
    apt update
    apt install docker-ce

安装 Docker-compose

  • 安装

    1
    2
    3
    
    curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    
    chmod +x /usr/local/bin/docker-compose

运行 windows 容器

  • 创建存储目录

    1
    
    mkdir /data/docker/windows/storage -p
  • 创建 docker-compose.yml

    vim /data/docker/windows/docker-compose.yml

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
    services:
      windows:
        image: dockurr/windows:latest
        container_name: windows
        stop_grace_period: 2m
        restart: unless-stopped
        environment:
          VERSION: "11"
          RAM_SIZE: "6G"
          CPU_CORES: "4"
          DISK_SIZE: "40G"
          LANGUAGE: "CN"
          MANUAL: "N"
        devices:
          - /dev/kvm
          - /dev/net/tun
        cap_add:
          - NET_ADMIN
        ports:
          - 8006:8006
          - 3389:3389/tcp
          - 3389:3389/udp
        volumes:
          - ./storage:/storage
  • 运行

    1
    2
    
    cd /data/docker/windows
    docker-compose up -d
  • 查看安装进度

    image-20250515105146587

    image-20250515105124856

常见问题

  • 选择 windows 版本

    默认情况下,系统会安装 Windows 11 Pro,可以将VERSION环境变量添加到 Compose 文件中,以指定要下载的其他 Windows 版本

    1
    2
    
    environment:
      VERSION: "11"
    Value版本大小
    11Windows 11 Pro5.4 GB
    11lWindows 11 LTSC4.7 GB
    11eWindows 11 Enterprise4.0 GB
    10Windows 10 Pro5.7 GB
    10lWindows 10 LTSC4.6 GB
    10eWindows 10 Enterprise5.2 GB
    8eWindows 8.1 Enterprise3.7 GB
    7uWindows 7 Ultimate3.1 GB
    vuWindows Vista Ultimate3.0 GB
    xpWindows XP Professional0.6 GB
    2kWindows 2000 Professional0.4 GB
    2025Windows Server 20255.6 GB
    2022Windows Server 20224.7 GB
    2019Windows Server 20195.3 GB
    2016Windows Server 20166.5 GB
    2012Windows Server 20124.3 GB
    2008Windows Server 20083.0 GB
    2003Windows Server 20030.6 GB
  • 更改存储位置

    1
    2
    
    volumes:
      - ./storage:/storage
  • 更改磁盘大小

    1
    2
    
    environment:
      DISK_SIZE: "256G"
  • 如何与主机共享文件

    1
    2
    
    volumes:
      - ./example:/data

    将此路径映射到 Windows 中的驱动器号,以便于访问

  • 更改 CPU 和 内存大小

    1
    2
    3
    
    environment:
      RAM_SIZE: "8G"
      CPU_CORES: "4"
  • 配置用户名和密码

    默认情况下,安装时会创建一个名为 docker 的用户,密码为 admin,如果不想使用默认用户名和密码,在安装前配置

    1
    2
    3
    
    environment:
      USERNAME: "bill"
      PASSWORD: "gates"
  • 选择 windows 语言

    1
    2
    
    environment:
      LANGUAGE: "CN"

    AE 阿拉伯语、BG 保加利亚语、CN 中文、HR 克罗地亚语、CZ 捷克语、DK 丹麦语、NL 荷兰语、GB 英语、EE 爱沙尼亚语、FI 芬兰语、FR法语、DE 德语、GR 希腊语、IL 希伯来语、HU 匈牙利语、IT 意大利语、JP 日语、KR 韩语、LV 拉脱维亚语、LT 立陶宛语,NO 挪威语、PL 波兰语、PT 葡萄牙语、RO 罗马尼亚语、RU 俄语、RS 塞尔维亚语、SK 斯洛伐克语、SI 斯洛文尼亚语、ES 西班牙语、SE 瑞典语、TH 泰语、TR 土耳其语、UA 乌克兰语。

  • 选择键盘布局

    1
    2
    3
    
    environment:
      REGION: "en-US"
      KEYBOARD: "en-US"
  • 如何使用 RDP 连接

    使用 RDP 连接 IP:3389

  • 如何进行手动安装

    建议自动安装,因为它会调整各种设置中防止在虚拟机中运行 windows 时出现问题,如果坚持手动安装,则修改以下环境变量

    1
    2
    
    environment:
      MANUAL: "Y"
  • 安装后自动运行脚本

    要在安装后运行自己的脚本,可以创建一个名为 install.bat 的文件,和其他文件一起放在 ./example 文件夹中,然后挂载到虚拟机中,在自动安装的最后一步执行 C:\oem\install.bat

    1
    2
    
    volumes:
      -  ./example:/oem