You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker构建.NET 8.0应用报错:无匹配windows/amd64 10.0.20348镜像清单

解决.NET 8.0容器化构建时的manifest匹配错误

这个错误的核心原因是:你当前使用的Windows Server 2022(版本10.0.20348)对应的.NET 8.0基础镜像没有包含在通用的8.0标签的manifest列表中,微软对.NET 8的Docker镜像标签策略做了调整,需要明确指定匹配你系统版本的镜像标签。

解决方案步骤:

  1. 修改Dockerfile中的基础镜像
    将原Dockerfile开头的sdk和后续可能用到的runtime镜像,替换为带Windows版本后缀的标签:

    • 若需要轻量的Nano Server镜像:
      FROM mcr.microsoft.com/dotnet/sdk:8.0-nanoserver-ltsc2022 AS build
      # 后续的runtime镜像也对应修改,比如:
      FROM mcr.microsoft.com/dotnet/aspnet:8.0-nanoserver-ltsc2022 AS base
      
    • 若需要完整的Windows Server Core镜像:
      FROM mcr.microsoft.com/dotnet/sdk:8.0-windowsservercore-ltsc2022 AS build
      # 对应runtime镜像:
      FROM mcr.microsoft.com/dotnet/aspnet:8.0-windowsservercore-ltsc2022 AS base
      

    这里的ltsc2022正是对应Windows Server 2022(版本10.0.20348)的标识。

  2. 验证镜像可拉取
    先单独执行拉取命令确认镜像存在:

    docker pull mcr.microsoft.com/dotnet/sdk:8.0-nanoserver-ltsc2022
    
  3. 重新执行构建
    修改Dockerfile后,再次运行你的构建命令即可:

    docker build -f Dockerfile -t my-app ..
    

补充说明:

.NET 7的通用标签能正常运行,是因为微软当时在通用标签中包含了更多Windows版本的manifest,但.NET 8开始要求明确指定匹配的Windows版本标签,避免不必要的镜像体积和版本兼容问题。

内容的提问来源于stack exchange,提问作者pf12345678910

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 07:02:36