前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >基于Windows云服务器搭建Docker和Containerd环境

基于Windows云服务器搭建Docker和Containerd环境

原创
作者头像
用户3321687
修改2024-11-08 11:21:41
修改2024-11-08 11:21:41
3500
举报

背景:公有云服务器基本是虚拟化的产物,云厂商一般不会开放子机的嵌套虚拟化功能,也就是说,子机的CPU的VT-X指令集是被禁用的,而目前在windows系统中安装docker所支持的后端服务只有hype-v和WSL1/WSL2,而无论哪种方式,都需要依赖虚拟化指令集,所以在windows系统中运行LCOW容器肯定是没戏,也就是说普通Windows云服务器不支持二次虚拟化的前提下,只能跑windows容器,无法运行Linux容器。

容器类型简单理解:LCOW容器是指基于linux系统制作的容器镜像,WCOW容器是指基于windows系统制作的容器镜像

详细说明在如下文档中有介绍:

https://cloud.tencent.com/developer/article/1758514

https://cloud.tencent.com/developer/article/2337707

https://cloud.tencent.com/developer/article/2279692

PS:本文重点介绍安装方法,关于一些概念类的问题,参考上述文档或自行百度,这里不做赘述。

问题:那么如何在公有云Windows操作系统中安装Docker并运行WCOW容器呢?

Part1:安装Docker

在windows系统中安装Docker的话,一般常用的方法是使用docker desktop去安装,但是由于云服务器无法正常启用hype-v或WSL2,在安装Docker Desktop时会遇到无法启动的报错,这里我们需要换一种安装方法,实际上在微软的官方文档中,已经介绍了一种安装方法,操作也比较简单,直接执行脚本即可,但是由于多数国内访问海外站点常会遇到网络超时问题,需要简单修改下脚本,将安装包地址修改为国内站点

微软文档:https://learn.microsoft.com/zh-cn/virtualization/windowscontainers/quick-start/set-up-environment?tabs=dockerce

安装过程:

1、先将微软文档中的安装脚本下载到本地,先不要执行:https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1

2、修改代码段这部分,修改为清华源的地址,不然国内服务器执行大概率是拉不下来的,最终会报错。

将 https://download.docker.com/win/static/stable/x86_64/  修改为  https://mirrors.tuna.tsinghua.edu.cn/docker-ce/win/static/stable/x86_64/

3、改之后直接运行脚本即可,在安装过程中机器会重启,重启登录之后脚本会继续执行(如果没有继续执行,可手动再次运行)

4、安装完成后执行docker version查看是否安装成功,正常打印server版本即为成功

descript
descript

5、修改docker镜像源为国内源站(可选步骤):

创建如下文件:C:\ProgramData\docker\config\daemon.json

内容:

{

"hosts": [

"npipe://"

],

"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]

}

这里我是设置的腾讯云内网源站,有需要可以自行修改,修改完后执行如下命令重启Docker服务:

Restart-Service Docker

6、在本地用习惯Docker Desktop的话,可能对命令不太熟悉,这里提供一个web管理的开源镜像,供大家使用(可选步骤)

在linux中管理docker容器常用Portainer,事实上Portainer也提供了windwos容器的,如下是安装方法:先创建数据卷,然后启动容器即可。

官方文档:https://docs.portainer.io/start/install-ce/server/docker/wcs

docker volume create portainer_data

docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart always -v \\.\pipe\docker_engine:\\.\pipe\docker_engine -v portainer_data:C:\data portainer/portainer-ce:2.21.1

Part2:安装Containerd

Containerd的安装比较简单,下面介绍其中一种方法,与Docker一样,Containerd的安装在上面提到的微软文档中也有介绍,不过实际测试下来使用微软官网提供的脚本,实测无法正常安装(原因没有深究),使用kubernetes官网提到的安装方法来安装测试是可以正常跑通的:https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/kubeadm/adding-windows-nodes/

同样也是先下载脚本:https://raw.githubusercontent.com/kubernetes-sigs/sig-windows-tools/master/hostprocess/Install-Containerd.ps1

接下来打开powershell,先cd到脚本存放目录,然后运行脚本,需注意,运行脚本时需要添加 -skipHypervisorSupportCheck 参数,来跳过Hype-v检测,同时指定软件版本,其他参数参考文档说明

descript
descript

参考命令: .\Install-Containerd.ps1 -ContainerDVersion 1.7.23 -skipHypervisorSupportCheck

上述命令安装的是1.7.23版本的Containerd,脚本执行过程可能会比较久,需要耐心等待,一次不成功多执行几次,因为需要从GitHub下载软件包,会比较慢,安装完成后机器会重启

如果实在执行多次都由于下载文件失败,可以先把这两个包下载下来:

Containerd.:https://github.com/containerd/containerd/releases

crictl:https://github.com/kubernetes-sigs/cri-tools/releases/ (文件比较多,注意不要找错)

下载之后分别重名为containerd.tar.gz和crictl.tar.gz,然后放到这个目录(没有的话自行创建)C:\Program Files\containerd

再修改安装脚本,注释或删掉这两句:

然后再执行安装命令

结果展示(这里我用的是ctr工具管理的,默认安装的是crictl):

关于Docker和ctr命令可参考:

descript
descript

最后再啰嗦下,无论是Docker还是Containerd,在Windows 系统的云服务器CVM中,都只能运行Windows容器,无法运行Linux容器。

补充:关于Windows CVM搭建K8S的问题,这里没有过多介绍,因为本身这个场景也比较小众,这里简单说下,windows的CVM只能作为worker节点,不能做为maste(除非是在支持虚拟化的机器中安装),而且集群的网络组件只支持Flannel和Calico,感兴趣的话可以参考前面提到的文档:https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/kubeadm/adding-windows-nodes/

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题:那么如何在公有云Windows操作系统中安装Docker并运行WCOW容器呢?
    • Part1:安装Docker
      • 安装过程:
    • Part2:安装Containerd
      • 关于Docker和ctr命令可参考:
      • 补充:关于Windows CVM搭建K8S的问题,这里没有过多介绍,因为本身这个场景也比较小众,这里简单说下,windows的CVM只能作为worker节点,不能做为maste(除非是在支持虚拟化的机器中安装),而且集群的网络组件只支持Flannel和Calico,感兴趣的话可以参考前面提到的文档:https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/kubeadm/adding-windows-nodes/
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档