I use Docker on Windows, and when I tried to pull a PHP image with this command
$ docker pull php
I got this message:
Using default tag: latest
latest: Pulling from library/php no matching manifest for windows/amd64
in the manifest list entries
How can I fix this problem?
This may not only happen due to windows containers!
Today all Node.Js docker images are not pullable. Always check the image you are trying to pull before.
Related Github-Issue
You are in Windows container mode. So if you're not sure that the image you want to pull is built for the Windows architecture, you need to switch to Linux containers.
From this article:
Linux vs. Windows Containers: What’s the Difference?
With Docker container support now available for Windows Server 2016, admins are bound to wonder what the differences are between Windows and Linux containers. Here’s an overview.
To keep things simple, let’s break them down into their similarities and differences. They look like this:
Similarities
Docker containers on Linux and Windows are similar in the following ways: They are designed to function as application containers. They run natively, meaning they do not depend on hypervisors or virtual machines. They can be administered through Docker (although you can also use PowerShell to manage containers on Windows). They are limited to containing applications that are natively supported by the host operating system. In other words, Docker for Windows can only host Windows applications inside Docker containers, and Docker on Linux supports only Linux apps. They provide the same portability and modularity features on both operating systems.
Differences
And here’s what makes Docker on Windows different:
Docker supports only certain versions of Windows (namely, Windows Server 2016 and Windows 10). In contrast, Docker can run on any type of modern Linux-based operating system. Even on Windows versions that are supported by Docker, Windows has stricter requirements regarding image compatibility. Read more about those [here*]). Some Docker networking features for containers are not yet supported on Windows. They are detailed at the bottom of this page. Most of the container orchestration systems that are used for Docker on Linux are not supported on Windows. The exception is Docker Swarm, which is supported. (If you want to use a different orchestrator on Windows, however, fret not; Windows support for orchestrators such as Kubernetes and Apache Mesos is under development.)
Non-Docker Containers and Windows
It is worth mentioning, too, that Docker is the only major container platform that is currently compatible with Windows. Other types of container engines, such as OpenVZ and LXD, are still Linux-only, and probably will remain so for the foreseeable future.
Since these container platforms cater to different types of use cases than Docker, their lack of Windows support may not matter for admins deciding whether to run Docker on Windows or Linux. Still, the fact that Docker is the only container option available on Windows is significant because it highlights the fact that the Windows container ecosystem is, for now, much smaller than the Linux container world.
Here's the missing link from above quote : here
the solution is :
Right click Docker instance
List item
Go to Settings
Daemon
Advanced
Set the "experimental": true
Restart Docker