我在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的吗? 如果不是,则需要运行Linux容器。
如果不使用实验模式,你只能在一种容器风格中使用Docker。 如果您像上面提到的那样激活实验模式,那么您可以根据在撰写文件中拉入的应用程序的需要使用Windows和Linux容器。
重点说明:实验性- Docker仍在开发中。
其他回答
造成这个错误的原因可能有很多。但是导致这个错误最明显的原因是在Linux容器模式下使用Windows容器,反之亦然。
单击上下文菜单中的系统托盘中的Docker图标 点击“切换到Window/Linux容器” 选项单击“切换对话框”中的“切换按钮” 这可能花不了多少时间 确保Docker现在处于运行状态
更新为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
对我来说,这是因为C:\ProgramData\Docker\config\daemon.json被拒绝访问 我把它修好了,现在可以用了。 您可以尝试切换到Linux容器,然后再切换回来。如果切换没有问题,那么它与访问权限一起工作。
看起来在windows 10 #1100中“docker pull”失败了
如果添加——experimental不起作用,考虑重新安装docker for windows。
弃用' latest '标签
为了鼓励更好的容器实践,我们在所有Windows基映像中都弃用' latest '标签。在2019日历年年初,我们将不再发布标签;我们将从可用标记列表中删除它。
我们强烈建议您声明希望在生产环境中运行的特定容器标记。“latest”标签是specific的反义词;除了图像名称,它不会告诉用户容器实际是什么版本。你可以阅读更多关于版本兼容性和选择适当的标签在我们的容器文档。
https://techcommunity.microsoft.com/t5/containers/windows-server-2019-now-available/ba-p/382430#