我在Windows上使用Docker,当我试图用这个命令拉一个PHP图像时

$ docker pull php

我收到了这样的信息:

Using default tag: latest
latest: Pulling from library/php no matching manifest for windows/amd64 
        in the manifest list entries

我该如何解决这个问题?


当前回答

在我的情况下,我必须先更新窗口,然后问题就消失了。

其他回答

在我升级Docker Desktop(之前配置了WSL2集成)后,我就遇到了这种情况。

如果你在升级后遇到这种情况,仅供参考,我必须做以下工作:

以管理员(提升)模式运行PowerShell,执行如下命令:

cd "C:\Program Files\Docker\Docker"
./DockerCli.exe -SwitchDaemon

如果你不这样做,你可能无法打开Docker Desktop上的Settings选项卡。

然后,您需要在设置中切换到Linux容器(通过取消勾选“使用基于WSL2的引擎”),然后重新启动。

在这一点上,只需运行一个快速测试,下载一个图像并运行一个容器,看看是否解决了问题:

docker run --rm -ti alpine:latest uname -a
Linux 2b08b155a042 5.4.72-microsoft-standard-WSL2 #1 SMP Wed Oct 28 23:40:43 UTC 2020 x86_64 Linux

从那里,如果您正在运行WSL2集成,只需返回到Settings屏幕并撤消我们在第2步中所做的选择(这将重新启动docker)。

此时,您将看到升级之前的所有映像和停止的容器。

看起来在windows 10 #1100中“docker pull”失败了

如果添加——experimental不起作用,考虑重新安装docker for windows。

您已进入Windows容器模式。因此,如果您不确定想要提取的映像是为Windows体系结构构建的,那么您需要切换到Linux容器。

Docker run McR.microsoft.com/windows/servercore:ltsc2016

试试上面的命令。 您正在提取的内容应该与您所在的底层Windows版本兼容。如果你使用的是Windows server 2016,上面的内容也适用。

关注这条线索获取更多信息

https://github.com/docker/for-win/issues/3761

造成这个错误的原因可能有很多。但是导致这个错误最明显的原因是在Linux容器模式下使用Windows容器,反之亦然。

单击上下文菜单中的系统托盘中的Docker图标 点击“切换到Window/Linux容器” 选项单击“切换对话框”中的“切换按钮” 这可能花不了多少时间 确保Docker现在处于运行状态