You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在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

火山引擎 最新活动