Docker - 镜像操作系统 "windows" 不能在此平台使用。

148

我在我的Windows 10机器上尝试了这个:

Dockerfile:

From microsoft/nanoserver
CMD ["echo", "Hello World"]

PS

C:\FSD\Docker\Trial1> docker build -t lea/leatest .
Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM microsoft/nanoserver
latest: Pulling from microsoft/nanoserver
bce2fbc256ea: Pulling fs layer
58f68fa0ceda: Pulling fs layer
image operating system "windows" cannot be used on this platform

2
看起来你的Docker环境目前设置为使用Linux容器,而不是Windows容器。 - Dan Lowe
什么是问题? - Peter Mortensen
5个回答

208
您的Docker主机配置为在VM中运行Linux容器。要运行Windows容器,您需要在系统托盘中右键单击Docker图标,并在Docker菜单中选择“切换到Windows容器...”。此选项在Windows“家庭版”中不可用。文档在这里


显示任务栏中Docker图标位置的屏幕截图


2
我完全不了解Docker,如果你也是一样的话,你需要在工具栏中找到Docker的迷你图标,右键单击,然后在Docker菜单中选择“切换到Windows容器”。请记住,您需要重新启动计算机才能完成此过程。 - arame3333
1
就我个人来说,我刚刚转换到了Windows容器,而且没有需要重新启动或做其他的事情。(Docker版本17.12.0-ce,构建版本c97c6d6) - mat007
1
我已经在Windows上使用Docker工具箱安装了docker,但是我在系统托盘中没有看到docker图标。我该怎么办? - paul
2
切换到 Windows 容器后,我必须在具有提升权限的 Windows PowerShell 上运行 Enable-WindowsOptionalFeature -Online -FeatureName $("Microsoft-Hyper-V", "Containers") -All - Agorreca
1
@Agorreca:谢谢!我已经完成了所有这些步骤,但仍然无法弄清楚为什么无法拉取Windows Docker镜像。尽管我目前使用的是Windows 11 Home,但在Linux和Windows容器之间切换的开关对我来说并没有变灰,似乎可以正常工作。所以这更加令人困惑。再次感谢您指出这一点。 - bmitc
显示剩余7条评论

49

我已经使用Docker工具箱在Windows上安装了Docker,但是我在系统托盘中没有看到Docker图标。我该怎么做? - paul
@paul 很抱歉,这个解决方案是针对Docker for Windows而不是Toolbox的。另外需要补充的是,相比于Toolbox,Docker for Windows是推荐的软件,因为它具有更好的界面(如Windows容器选项)。 - pbaranski
Docker for WindowsDocker Toolbox更受欢迎?为什么呢? - paul
@paul,仅转达 Docker 工作人员的回复:https://forums.docker.com/t/docker-for-windows-or-docker-toolbox/30387,为了避免矛盾,我将添加这个资源:https://medium.com/short-stories-on-software/fixing-docker-to-run-smooth-on-windows-9e71dcc7c128,所以你需要根据自己的判断做出决定:D - pbaranski

11
需要从右下角隐藏图标下运行的Docker图标中选择“切换到Windows容器”... 当您从Linux切换到Windows或从Windows切换到Linux时,Docker守护程序会自动重新启动以考虑已切换的容器...

我强烈建议您查看以下两个链接,以更深入地了解如何创建窗口容器:


我发现这些链接的内容对于创建一个窗口容器非常有帮助,但由于窗口容器的支持尚未像Linux容器那样成熟,因此仍在不断改进以解决我们所有人都面临的普遍问题!


8

microsoft/nanoserver是一个Windows本地容器镜像。因此,您无法像Linux容器一样本地运行它。它只能在Windows 10或Windows Server上运行。

如果您使用的是Windows 10,可以通过选择

切换到Windows容器

来切换到Windows容器。


1
它有点隐藏,因为它不在Docker桌面UI中,而是在您的系统任务栏中的“隐藏图标”中。使用向上箭头打开正在运行的应用程序,右键单击Docker图标,然后选择该选项。 - Dmitri Larionov

0

只是为了补充其他人在切换到 Windows 容器之前已经回答过的内容,根据您如何安装 Docker,请确保启用了 Microsoft Hyper-V 容器。

在 Powershell 上以管理员身份运行

Enable-WindowsOptionalFeature -Online -FeatureName $("Microsoft-Hyper-V", "Containers") -All

注意:这也将重新启动您的电脑


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接