有时候,当我们的项目必须要在win系统下跑,并且开发环境相对复杂(难以重新配置到新设备),这个时候其实可以用docker拉取win的镜像,配置好一个镜像后,就可以一劳永逸。
windows10以上系统和Windows server的安装docker和拉取镜像有所不同,具体可以参考:
Windows 容器文档 | Microsoft Learn
安装好docker后,控制台输入指令:docker version 即可查看本地机器和服务机器的系统版本,如果两者的版本都是windows(如图1),那就可以下一步。

图1 windows server 2016系统的服务器
往往我们想要的镜像,在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:<version>-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:<version>-windowsservercore
可能你的需求不是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镜像不成功的大部分原因就是版本没有对齐。
我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
我在目录“C:\DocumentsandSettings\test.exe”中有一个文件,但是当我用单引号编写命令时`C:\DocumentsandSettings\test.exe(我无法在此框中显示),用于在Ruby中执行命令,我无法这样做,我收到的错误是找不到文件或目录。我尝试用“//”和“\”替换“\”,但似乎没有任何效果。我也使用过系统、IO.popen和exec命令,但所有的努力都是徒劳的。exec命令还使程序退出,这是我不想发生的。提前致谢。 最佳答案 反引号环境就像双引号,所以反斜杠用于转义。此外,Ruby会将空格解
我在安装“redcarpet”gem时遇到以下错误。它在我friend的机器上安装没有问题。(我想安装它来运行yard)ruby版本:1.9.3命令输出:D:\Learning\Common_POM_FW\SampleProjects>yard[error]:Missing'redcarpet'gemforMarkdownformatting.Installitwith`geminstallredcarpet`D:\Learning\Common_POM_FW\SampleProjects>geminstallredcarpetTemporarilyenhancingPATHtoinc
我们正在开发一个需要推送通知的WP8应用程序。为了测试它,我们使用CURL命令行运行推送通知POST请求,确保它实际连接,使用客户端SSL证书进行身份验证并发送正确的数据。我们确实知道,当我们收到对设备的推送时,这项工作是有效的。这是我们一直用于测试目的的CURL命令:curl--certclient_cert.pem-v-H"Content-Type:text/xml"-H"X-WindowsPhone-Target:Toast"-H"X-NotificationClass:2"-XPOST-d"MytitleMysubtitle"https://db3.notify.live.ne
我正在尝试使用docker运行一个Rails应用程序。通过github的sshurl安装的gem很少,如下所示:Gemfilegem'swagger-docs',:git=>'git@github.com:xyz/swagger-docs.git',:branch=>'my_branch'我在docker中添加了keys,它能够克隆所需的repo并从git安装gem。DockerfileRUNmkdir-p/root/.sshCOPY./id_rsa/root/.ssh/id_rsaRUNchmod700/root/.ssh/id_rsaRUNssh-keygen-f/root/.ss
我在Windows7上运行Jekyll时遇到问题。当我运行时jekyll出现以下错误C:\temp\jekyll\kouphax.github.com>jekyllConfigurationfromC:/temp/jekyll/kouphax.github.com/_config.ymlBuildingsite:C:/temp/jekyll/kouphax.github.com->C:/temp/jekyll/kouphax.github.com/_siteunit-testingYouaremissingalibraryrequiredforTextile.Pleaserun:$[s