简单描述下场景,对同一资源开启多个进程进行打包~,因第一次运行 windows 容器,把踩得坑记录一下.
1. 下载并安装 Docker Desktop
1.1 开启 Hyper-V
打开 windows 的开始菜单,搜索 “启动或关闭 Windows 功能”

然后勾选 Hyper-V 选项
重启一下~
1.2 下载安装包
我们可以在 docker 的官网 docker 来下载 windows for docker
下载之后,一步一步安装即可~
1.2 切换 windows 容器
安装之后,桌面右下角应该有个小鲸鱼图标,右键选择 “Switch to Windows containers” 选项,等待一会儿~

1.3 配置镜像源
双击小鲸鱼,找到设置 -》Docke Engine 选项, 因为 windows 镜像微软放在了 -mcr.microsoft.com 源里~ 所以配置一下镜像源,不然下载贼慢。。windows 的镜像又很大
{"registry-mirrors": ["https://dockerhub.azk8s.cn"]}

点击 Apply & Restart 等待一会儿~
2. 拉取 windows 镜像
2.1 选择镜像版本
我们可以在 dockerHub 上寻找自己需要的版本,不过 windows 官方提供了较多版本的镜像,我们选取合适的版本来构建自己的应用

具体的差别有兴趣可以研究一下,我这里选择使用 Windows Server Core 这个镜像,因为它相对来说大小合适,功能齐全
2.2 拉取镜像
在拉取镜像的时候要注意指定版本号,因为官方不维护 latest 标签~

我的电脑是 win10 专业版 20H2 版本号的,所以我这里就选择使用 20H2 版本的镜像 这里要注意,一定不能选择比自己电脑系统版本号高的镜像~

这里是官方的镜像版本列表

我们使用 PowerShell 执行拉取命令
docker pull mcr.microsoft.com/windows/servercore:20H2
我这里已经下载完了~睡了个午觉~ 
3. 创建并挂载容器
我在这里压缩了一个 G 盘出来专门做宿主机的挂载目录,并写了一个循环输出 Hello 语句的程序

我们执行下边的命令来 run 一个容器 -d 代表后台运行 -it 代表启动容器后进入容器内 --name 代表容器的名称 -v 代表把宿主机的目录挂载到容器内的目录
docker run -d -it --name=test1 -v g:\test:c:\test mcr.microsoft.com/windows/servercore:20H2
在 Docker Desktop 上边也可以看到我们启动的容器,这里我同时启动了两个容器,分表叫 test1 和 test2

可以看到我们启动的两个容器内的 test 文件夹中都出现了我们的 main 程序。

4. 进行测试
执行 main.exe 程序,两个容器都正常进行输出~ 
Windows 容器化其实底层还是启动了一个 Linux 虚拟机~ 原理都一样,但是 Windows 系统吧~坑挺多的。。
参考
Windows 容器文档




