我在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实例 进入设置 守护进程 先进的 设置“experimental”:true 重启码头工人

 {
      "registry-mirrors": [],
      "insecure-registries": [],
      "debug": true,
      "experimental": true
    }

其他回答

在码头工人:

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

.

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

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

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

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

我有同样的问题运行Windows IIS映像使用docker for Windows。读了上面Mohammad Trabelsi的回复,我意识到要解决我的问题,我需要把我的容器(在docker上)切换到Windows容器。

这样做:

右击Docker实例 选择“切换到Windows容器…”

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

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

相关Github-Issue

在Windows上,必须编辑文件守护进程。Json或windows-daemon-options。在Windows上,配置文件的默认位置是%programdata%\docker\config\daemon。Json或%programdata%\docker\resources\windows-daemon-options.json

json文件上的可选字段特性,允许用户启用或禁用特定的守护进程特性。示例:{" features":{"buildkit": true}}启用buildkit作为默认的docker映像构建器。