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

创建.NET CORE 2.1(预览版)Web应用后Docker运行报错:microsoft/aspnetcore:2.1镜像未找到

解决.NET Core 2.1预览版Docker镜像找不到的问题

这个问题我之前也碰到过,核心原因是你用的是预览版的.NET Core 2.1 SDK,但Dockerfile里指定的是正式版的运行时镜像标签,而当时2.1的正式版镜像还没发布,所以Docker找不到对应的manifest。

给你几个具体的解决步骤:

  • 首先打开项目根目录下的Dockerfile,检查里面的基础镜像配置
  • 如果你的Dockerfile是多阶段构建(大部分.NET Core项目默认是),要同时修改构建阶段和运行阶段的镜像:
    • 构建阶段(用SDK编译代码)改成对应预览版的SDK镜像:FROM microsoft/dotnet:2.1-sdk-preview2-008530(完全匹配你的dotnet --version输出的版本号)
    • 运行阶段(部署运行时)改成对应预览版的ASP.NET Core镜像:FROM microsoft/aspnetcore:2.1-preview2
  • 修改完成后,重新执行构建命令:docker-compose build blobtest 或者直接用docker build .(如果是单独构建这个服务)

举个修改后的Dockerfile示例:

# 构建阶段
FROM microsoft/dotnet:2.1-sdk-preview2-008530 AS build
WORKDIR /src
COPY ["BlobTest/BlobTest.csproj", "BlobTest/"]
RUN dotnet restore "BlobTest/BlobTest.csproj"
COPY . .
WORKDIR "/src/BlobTest"
RUN dotnet build "BlobTest.csproj" -c Release -o /app

# 发布阶段
FROM build AS publish
RUN dotnet publish "BlobTest.csproj" -c Release -o /app

# 运行阶段
FROM microsoft/aspnetcore:2.1-preview2 AS base
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "BlobTest.dll"]

为什么要这么改?因为预览版的.NET Core SDK和运行时镜像不会使用正式版的标签(比如:2.1),必须明确指定预览版的标签才能拉取到对应的镜像文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 10:05:38