知足常乐

知足常乐

在windows系统中运行Windows容器

2021-07-22

简单描述下场景,对同一资源开启多个进程进行打包~,因第一次运行windows容器,把踩得坑记录一下.

1.下载并安装Docker Desktop

1.1开启Hyper-V

打开windows的开始菜单,搜索 “启动或关闭Windows功能”

image.png

然后勾选Hyper-V选项

image.png
重启一下~

1.2下载安装包

我们可以在docker 的官网 docker来下载windows for docker

image.png
下载之后,一步一步安装即可~

1.2切换windows容器

安装之后,桌面右下角应该有个小鲸鱼图标,右键选择 “Switch to Windows containers” 选项,等待一会儿~

image.png

1.3配置镜像源

双击小鲸鱼,找到设置-》Docke Engine 选项,
因为windows镜像微软放在了 -mcr.microsoft.com 源里~
所以配置一下镜像源,不然下载贼慢。。windows的镜像又很大

{
  "registry-mirrors": [
    "https://dockerhub.azk8s.cn"
  ]
}

image.png

点击Apply & Restart 等待一会儿~

2.拉取windows镜像

2.1选择镜像版本

我们可以在dockerHub 上寻找自己需要的版本,不过windows官方提供了较多版本的镜像,我们选取合适的版本来构建自己的应用

image.png

具体的差别有兴趣可以研究一下,我这里选择使用Windows Server Core这个镜像,因为它相对来说大小合适,功能齐全

2.2拉取镜像

在拉取镜像的时候要注意指定版本号,因为官方不维护 latest标签~

image.png

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

image.png

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

image.png

我们使用PowerShell执行拉取命令

docker pull mcr.microsoft.com/windows/servercore:20H2

我这里已经下载完了~ 睡了个午觉~
image.png

3.创建并挂载容器

我在这里压缩了一个G盘出来专门做宿主机的挂载目录,并写了一个循环输出Hello语句的程序

image.png

我们执行下边的命令来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

image.png

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

image.png

4.进行测试

执行main.exe程序,两个容器都正常进行输出~
image.png

Windows容器化其实底层还是启动了一个Linux虚拟机~
原理都一样,但是Windows系统吧~坑挺多的。。

参考

Windows 容器文档