因项目需要,测试基于docker-win11环境下运行多核OpenMP程序,以下记录docker中安装windows11过程。

1. Windows11镜像下载

点击windows连接, 选择 Windows11(...ISO), 以及语言选项

下载得到6.4G的iso文件: Win11_23H2_Chinese_Simplified_x64v2.iso

2. dockers环境安装

2.1 docker环境

可参考:

2.2 镜像仓库配置

docker安装之后,默认是没有/etc/docker/daemon.json

正常情况下,国内访问docker Hub比较困难,可以换成国内的镜像仓库(但是对于一些特殊的镜像 如本例中的 qemu-docker,国内的镜像仓库中缺失),这里使用docker Hub的克隆镜像仓库 ( 这里很重要,否则后续会出现各种错误,如qemux/qemu-docker:6.0.1: failed to do request:....

配置镜像仓库:

vim /etc/docker/daemon.json

{
  "registry-mirrors": [
    "",
    "",
    "",
    ""
  ]
}

重新加载服务配置

sudo systemctl daemon-reload

重启docker服务

sudo systemctl restart docker

3. dockurr/windows镜像构建

这里采用了下面的镜像(需要连接docker Hub, 下载dockurr/windows所依赖的组件,这里使用docker Hub的克隆镜像仓库 :

3.1 下载dockurr/windows源码

从github中下载dockurr/windows

git clone 
cd windows
ls

在windows目录下,可以看到

Dockerfile assets compose.yml kubernetes.yml license.md readme.md src 等一些文件。

我们将利用Dockerfile构建dockurr/windows镜像

3.2 利用Dockerfile构建镜像

修改 Dockerfile 里面的参数:

vim Dockerfile

ENV RAM_SIZE="16G"

ENV CPU_CORES="4"

ENV DISK_SIZE="256G"

ENV VERSION="win11"

构建镜像:

docker build -t dockurr/windows .

成功构建 dockurr/windows 镜像。 接下来查看镜像:

docker images

可以看到 dockurr/windows 镜像

4. windows11安装与访问

接下来为windows11配置参数,并生成win11容器,以及访问win11

4.1 windows11容器生成

docker run -dit --name win11 -v /work_local:/share -v /work_local/lk/software/Win11_23H2_Chinese_Simplified_x64v2.iso:/custom.iso -p 4389:4389 -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN -e LANGUAGE="Chinese" -e REGION="en-US" -e KEYBOARD="en-US" -e RAM_SIZE="16G" -e CPU_CORES="24" -e USERNAME="admin" -e PASSWORD="123456" -e VERSION="win10" -e DISK_SIZE="256G" dockurr/windows:latest

以上命令执行之后,将会自动安装windows11.

参数说明:

  • 共享存储(挂载目录 /work_local)

-v /work_local:/share

  • 挂载一个本地镜像

-v /work_local/lk/software/Win11_23H2_Chinese_Simplified_x64v2.iso:/custom.iso

  • 添加了两个端口

-p 4389:4389

-p 8006:8006

其中4389是用来远程登录,8006是用来vnc管理

  • 添加了设备

--device=/dev/kvm

  • 添加了权限

--cap-add NET_ADMIN

  • 添加了超时时间 (这里省略了)

--stop-timeout 120

  • 添加了一些环境变量,语言、地区、 布局、 容量、cpu核心数、版本号、磁盘容量、用户名、密码

-e LANGUAGE="Chinese" -e REGION="en-US" -e KEYBOARD="en-US" -e RAM_SIZE="16G" -e CPU_CORES="2" -e USERNAME="admin" -e PASSWORD="123456" -e VERSION="win10" -e DISK_SIZE="256G"

docker run 参数说明,可参考:

4.2 Windows11访问

使用浏览器访问

耐心等待..., 安装大约需要 20分钟左右

至此docker-win11容器安装成功。

可以安装ToDesk, 向日葵等软件进行远程访问。