因项目需要,测试基于docker-win11环境下运行多核OpenMP程序,以下记录docker中安装windows11过程。
1. Windows11镜像下载
点击windows连接, 选择 Windows11(...ISO), 以及语言选项
下载 Windows 11https://www.microsoft.com/zh-cn/software-download/windows11
下载得到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的克隆镜像仓库 https://image.cgdcgd.cc (这里很重要,否则后续会出现各种错误,如qemux/qemu-docker:6.0.1: failed to do request:....)
配置镜像仓库:
vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://image.cgdcgd.cc",
"https://mirror.ccs.tencentyun.com",
"https://registry.cn-hangzhou.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
重新加载服务配置
sudo systemctl daemon-reload
重启docker服务
sudo systemctl restart docker
3. dockurr/windows镜像构建
这里采用了下面的镜像(需要连接docker Hub, 下载dockurr/windows所依赖的组件,这里使用docker Hub的克隆镜像仓库 https://image.cgdcgd.cc):
3.1 下载dockurr/windows源码
从github中下载dockurr/windows
git clone https://github.com/dockur/windows.git
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
-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 参数说明,可参考:
【docker常用命令系列】docker run示例选项用法大全权威详解 - 知乎 (zhihu.com)
4.2 Windows11访问
使用浏览器访问
http://<服务器IP>:8006
耐心等待..., 安装大约需要 20分钟左右
至此docker-win11容器安装成功。
可以安装ToDesk, 向日葵等软件进行远程访问。