我在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上使用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 #1100中“docker pull”失败了
如果添加——experimental不起作用,考虑重新安装docker for windows。
其他回答
我在Azure DevOps管道中得到了这个错误。
Step 1/7 : FROM nginx:alpine
alpine: Pulling from library/nginx
no matching manifest for windows/amd64 10.0.14393 in the manifest list entries
##[error]C:\Program Files\Docker\docker.exe failed with return code: 1
##[section]Finishing: Build an image
问题是我选择了托管的VS2017而不是托管的Ubuntu。在进行如下更改后,构建成功。
希望能有所帮助。
我在开始学习docker时遇到过这个错误,我对这个场景的理解如下:
为什么你提到这个问题: 因为你引用的是基于Linux的镜像,而你目前使用的是基于windows的平台来运行/构建docker镜像。
解决方法: 简单的回答:要么将当前平台切换到Linux模式,要么拉出基于windows的映像。 以下是可能的选项:
切换到Linux容器,因为错误是“没有匹配清单for windows/amd64” 设置docker环境为“experimental”:true。 提取特定于平台的图像 例如:docker pull——platform {linux/Windows} {image-name}
更新为Windows 10 20H2
转到Docker配置 进入Docker Engine选项卡 将行“experimental”:false更改为“experimental”:true 使用应用&重启按钮重新启动Docker
你也可以手动修改配置文件,用你最喜欢的代码编辑器打开它(可视代码,notepad++…),例如:
# BACKUP Your file with PowerShell
Copy-Item -Path C:\ProgramData\Docker\config\daemon.json -Destination C:\ProgramData\Docker\config\daemon.json.backup
# Open the file with Visual Code
code C:\ProgramData\Docker\config\daemon.json
或者直接用Powershell更改字符串
# Set Path in variable
$FILE = "C:\ProgramData\Docker\config\daemon.json"
# Replace '"experimental": false' to '"experimental": true'
(Get-Content -Path $FILE) -replace '"experimental": false','"experimental": true' | Set-Content -Path $FILE
# Check the file content
type $FILE
输出示例
PS C:\WINDOWS\system32> type $FILE
{
"registry-mirrors": [],
"insecure-registries": [],
"debug": false,
"experimental": true
}
在您需要重新启动Docker守护进程后
PS C:\WINDOWS\system32> Restart-Service docker
检查服务状态
PS C:\WINDOWS\system32> Get-Service docker
Status Name DisplayName
------ ---- -----------
Running docker Docker Engine
我有同样的问题运行Windows IIS映像使用docker for Windows。读了上面Mohammad Trabelsi的回复,我意识到要解决我的问题,我需要把我的容器(在docker上)切换到Windows容器。
这样做:
右击Docker实例 选择“切换到Windows容器…”
Docker run McR.microsoft.com/windows/servercore:ltsc2016
试试上面的命令。 您正在提取的内容应该与您所在的底层Windows版本兼容。如果你使用的是Windows server 2016,上面的内容也适用。
关注这条线索获取更多信息
https://github.com/docker/for-win/issues/3761