如何在Windows Server 2016上运行Linux Docker容器?已遇镜像拉取报错
解决Docker for Windows拉取Linux镜像时出现"no matching manifest for windows/amd64"的问题
先还原你遇到的报错场景:
PS C:\tmp> docker pull ubuntu Using default tag: latest latest: Pulling from library/ubuntu no matching manifest for windows/amd64 in the manifest list entries
你已经尝试了开启实验模式、遵循LCOW镜像指引、手动创建Hyper-V镜像以及使用Docker夜间构建版本,但问题依然存在。结合你的Docker版本信息(客户端Experimental: false),我给你几个针对性的排查和修复步骤:
1. 确保Docker客户端和服务端都开启实验模式
你当前的客户端实验模式是关闭的,这很可能导致LCOW相关功能无法正常触发:
- 打开Docker设置界面,找到Daemon选项卡,勾选"Experimental features";同时在"General"选项卡中确认客户端的实验模式也已开启(部分版本需要单独设置)。
- 或者通过配置文件修改:找到
C:\ProgramData\docker\config\daemon.json(没有的话直接新建),添加以下内容:{ "experimental": true } - 执行命令开启客户端实验模式:
docker context update default --experimental true - 重启Docker服务,再次运行
docker version,确认客户端和服务端的Experimental字段都显示为true。
2. 确认Docker正运行在Linux容器模式
右下角右键点击Docker图标,确保已经切换到Linux containers模式。如果之前是Windows容器模式,切换后需要等待Docker重启完成。
3. 强制指定拉取Linux平台的镜像
如果上述步骤后仍有问题,可以尝试在拉取时明确指定目标平台:
docker pull --platform linux/amd64 ubuntu:latest
4. 检查LCOW镜像是否正确安装
你提到已经遵循了LCOW镜像指引,还是建议再确认下:
- 执行
docker image inspect mcr.microsoft.com/windows/lcow:latest,如果能返回完整的镜像信息说明安装正常;如果报错,需要重新下载该镜像。
另外,你使用的是2018年的夜间版本,这个版本相对较旧,可能存在一些已知的兼容性问题,如果上述方法都无效,可以考虑尝试更新到较新的稳定版Docker for Windows,很多旧版本的LCOW相关bug在后续版本中已经修复。
内容的提问来源于stack exchange,提问作者Doug




