Docker: windows下跑windows镜像 | 您所在的位置:网站首页 › 舆情危机公关由公司哪个部门负责 › Docker: windows下跑windows镜像 |
有时候,当我们的项目必须要在win系统下跑,并且开发环境相对复杂(难以重新配置到新设备),这个时候其实可以用docker拉取win的镜像,配置好一个镜像后,就可以一劳永逸。 windows10以上系统和Windows server的安装docker和拉取镜像有所不同,具体可以参考: Windows 容器文档 | Microsoft Learn 前提:安装好docker后,控制台输入指令:docker version 即可查看本地机器和服务机器的系统版本,如果两者的版本都是windows(如图1),那就可以下一步。 图1 windows server 2016系统的服务器 拉取python-windows镜像:往往我们想要的镜像,在docker hub上都已经有人做好了,我们可以拉取下来,自己再改改就可以了。依python为例,在Docker Hub上搜索python,如图2,点第一个。 图2 docker hub搜索python 进去之后,点击Overview,往下拉可以看到Dockerfile制作镜像的方法(图3);点击Tags,可以看到很多版本,但是都是linux系统的(图4)。 图3 Dockerfile for python 图4 python-linux镜像 回到Overview,往下拉,可以找到python:-windowsservercore(如图5),这里有介绍,这个版本的镜像是基于 Windows Server Core的,并且可以运行在win10和win server 2016上。只需要将图3的python版本换成这里的windowsserver版本就行了(没试过应该是docker pull python:3.8-windowsservercore或者在Dockerfile里FROM python:3.8-windowsservercore)。 图5 python:-windowsservercore 拉取windows server core基础镜像:可能你的需求不是python+win,那么,你可以在windows server core基础镜像的基础上安装你的软件包。打开 Windows Server Core,可以看到有很多版本(图6 图7)。 图6 图7 重点来了:比如我在我的windows server 2016上,pwoershell中输入,如图8。 docker pull mcr.microsoft.com/windows/servercore:ltsc2022会报错: no matching manifest for windows/amd64 10.0.14393 in the manifest list entries图8 拉取镜像报错 这是因为我们下载的版本和我们电脑的win版本不一致导致的。那么你可能要问了,我该怎么拉取和我电脑对应版本的镜像呢? 解决方法:打开 Windows Server Core,往下翻,我们可以看到一个表格,这个表格对应了很多版本(图9)。 图 9 图8报错的信息中有告知,我的windows server 2016的系统版本10.0.14393,对应的镜像版本是ltsc2016,这时候我们 docker pull mcr.microsoft.com/windows/servercore:ltsc2016就可以拉取成功了。再不行就换ltsc2016-amd64,具体和ltsc2016有什么区别,有知道的可以评论区回答一下。 如果你是windows10系统或者别的系统,可以在图7跳转,找到自己的版本拉取。 win系统拉取win镜像不成功的大部分原因就是版本没有对齐。 |
CopyRight 2018-2019 实验室设备网 版权所有 |