拉取hello-world镜像时出现“在清单列表条目中没有匹配的Windows/amd64 10.0.16299清单”错误。

3
我已经在Windows 10上安装了Docker并配置为Windows容器。我无法切换到Linux容器,它会抛出一些异常。当我拉取hello-world镜像时,它会显示“清单列表条目中没有与Windows/amd64 10.0.16299匹配的清单”。这个错误是什么意思?我也尝试了实验模式,这个解决方案是我在Stack Overflow上找到的。我还尝试重新安装了Docker for Windows,但没有成功。有人可以帮助我吗?
3个回答

6

这个错误意味着您的主机操作系统与您尝试拉取的docker镜像所使用的操作系统不兼容。请参阅Windows容器版本兼容性

例如,如果您在主机操作系统上运行的是Windows 10 1809,则无法拉取mcr.microsoft.com/windows:1909。但是,您当然可以拉取mcr.microsoft.com/windows:1809

例如:docker run mcr.microsoft.com/windows:1809

或者通过docker-compose.yml文件执行docker-compose up命令。

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

networks:
  myNet:
    driver: nat

5
“没有找到匹配的清单”错误是指当该特定镜像无法找到时出现的情况(例如,openjdk:8 存在但 openjdk:69 会导致引发该错误,因为它不存在)。
Docker Hub 上确实存在 hello-world 镜像,但对于某些计算机(例如您的 Windows AMD),该镜像并不存在。在这种情况下,应使用替代的 hello-world 镜像 docker/surprise(运行docker run --rm -it docker/surprise)。
由于无论是运行 docker --version 还是 docker run hello-world 都应该演示您已经成功设置了 Docker,因此文档应针对此警告进行更新。请注意,在这种情况下应使用 docker/surprise 镜像。

如果 docker --version 正常输出,那么 docker run hello-world 应该可以正常运行。 - undefined
它显示的是Docker版本19.03.5,构建号为633a0ea。 - undefined
请尝试使用docker run --rm -it docker/surprise命令。 - undefined

4

我认为这与您实际使用的计算机有关,我的意思是您可能正在使用AMD处理器。

在我的情况下,我正在使用基于AMD处理器的Windows Server 2016。 Docker为Windows Server用户提供了另一个版本,称为Docker Enterprise Engine(简称EE)。对于使用Docker EE且在AMD上运行的用户,他们应该尝试这个:

docker run hello-world:nanoserver-sac2016

2
amd64是一种架构的名称,它并不意味着您正在使用AMD处理器。英特尔处理器也使用amd64。此外,Docker EE表示企业版,而不是企业引擎。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接