我在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

我该如何解决这个问题?


当前回答

我在Windows 10中通过运行管理Powershell解决了这个问题:

cd "C:\Program Files\Docker\Docker"

然后:

./DockerCli.exe -SwitchDaemon

其他回答

以我为例,我使用的Windows操作系统版本不支持我试图拉出的标签。利用一个旧的标签让我可以让它工作。

具体地说:

Docker pull McR.microsoft.com/windows/nanoserver:1903错误

Docker拉McR.microsoft.com/windows/nanoserver:1803-amd64工作

考虑一下您正在导入的应用程序——它们是基于Windows的吗? 如果不是,则需要运行Linux容器。

如果不使用实验模式,你只能在一种容器风格中使用Docker。 如果您像上面提到的那样激活实验模式,那么您可以根据在撰写文件中拉入的应用程序的需要使用Windows和Linux容器。

重点说明:实验性- Docker仍在开发中。

这可能不仅仅发生在windows容器上!

现在所有的Node.Js docker映像都是不可拉的。总是检查你要拉之前的图像。

相关Github-Issue

我在开始学习docker时遇到过这个错误,我对这个场景的理解如下:

为什么你提到这个问题: 因为你引用的是基于Linux的镜像,而你目前使用的是基于windows的平台来运行/构建docker镜像。

解决方法: 简单的回答:要么将当前平台切换到Linux模式,要么拉出基于windows的映像。 以下是可能的选项:

切换到Linux容器,因为错误是“没有匹配清单for windows/amd64” 设置docker环境为“experimental”:true。 提取特定于平台的图像 例如:docker pull——platform {linux/Windows} {image-name}

在码头工人:

进入设置 转到Docker引擎 将experimental改为true 按应用并重新启动

.