2

I've installed docker on windows 10 and configured for windows container. I'm not able to switch to linux container. it is throwing some exception.

When I pull hello-world image it is giving "no matching manifest for windows/amd64 10.0.16299 in the manifest list entries" message. What does this error mean? I tried experimental mode too. This solution I found on stack overflow. I've also tried to reinstall docker for windows but no luck.

Can anyone help me in this?

theduck
  • 2,589
  • 13
  • 17
  • 23
Mohan
  • 907
  • 5
  • 22
  • 45

3 Answers3

5

The "no matching manifest" error happens when that particular image could not be found (e.g., openjdk:8 exists but openjdk:69 would cause that error to be thrown because it doesn't exist).

The hello-world image does exist on Docker Hub, but not for certain computers (e.g., your Windows AMD). The alternate hello-world image to be used on such computers is docker/surprise (run docker run --rm -it docker/surprise).

The docs should be updated for this caveat since both docker --version and docker run hello-world is supposed to demonstrate that you've successfully set up Docker. Just know that you should use the docker/surprise image instead in such cases.

Neel Kamath
  • 1,188
  • 16
  • 34
5

This error implies your host machine's OS is not compatible with the OS docker image you are trying to pull. See Windows container version compatibility

For example, if you are running Windows 10 1809 on your host OS, you cannot pull mcr.microsoft.com/windows:1909. However you can of course pull mcr.microsoft.com/windows:1809

e.g. docker run mcr.microsoft.com/windows:1809

or docker-compose up with a docker-compose.yml file:

version: "3"
services:
  myWin:
    image: mcr.microsoft.com/windows:1809
    networks:
      - myNet

networks:
  myNet:
    driver: nat
DaBozUK
  • 590
  • 1
  • 8
  • 24
4

I think it's related to your actual PC, I mean you might be using an AMD processor.

In my case, I am using Windows Server 2016 on AMD processor. Docker gives Windows Server users another version called Docker Enterprise Engine (EE for short) and for Docker EE users who are on AMD, they should try this:

docker run hello-world:nanoserver-sac2016
vohrahul
  • 1,123
  • 10
  • 17
  • 1
    amd64 is the name of an architecture, it does not mean that you are using an AMD processor. Intel processors also use amd64. Also Docker EE means Enterprise Edition, not Enterprise Engine. – Étienne Nov 24 '20 at 13:15