我已经在Windows 10上安装了Docker并配置为Windows容器。我无法切换到Linux容器,它会抛出一些异常。当我拉取hello-world镜像时,它会显示“清单列表条目中没有与Windows/amd64 10.0.16299匹配的清单”。这个错误是什么意思?我也尝试了实验模式,这个解决方案是我在Stack Overflow上找到的。我还尝试重新安装了Docker for Windows,但没有成功。有人可以帮助我吗?
这个错误意味着您的主机操作系统与您尝试拉取的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
openjdk:8
存在但 openjdk:69
会导致引发该错误,因为它不存在)。hello-world
镜像,但对于某些计算机(例如您的 Windows AMD),该镜像并不存在。在这种情况下,应使用替代的 hello-world
镜像 docker/surprise
(运行docker run --rm -it docker/surprise
)。docker --version
还是 docker run hello-world
都应该演示您已经成功设置了 Docker,因此文档应针对此警告进行更新。请注意,在这种情况下应使用 docker/surprise
镜像。我认为这与您实际使用的计算机有关,我的意思是您可能正在使用AMD处理器。
在我的情况下,我正在使用基于AMD处理器的Windows Server 2016。 Docker为Windows Server用户提供了另一个版本,称为Docker Enterprise Engine(简称EE)。对于使用Docker EE且在AMD上运行的用户,他们应该尝试这个:
docker run hello-world:nanoserver-sac2016
docker --version
正常输出,那么docker run hello-world
应该可以正常运行。 - undefineddocker run --rm -it docker/surprise
命令。 - undefined