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

Windows 10系统下如何在Docker容器中运行.NET exe应用程序

解决Windows 10 21H1无Hyper-V环境下Docker运行.NET exe的方案

问题根因

你当前关闭了Hyper-V,Docker Windows容器只能使用进程隔离模式,该模式要求容器镜像与宿主系统的内核版本严格兼容。win10-21h1-preview预览版镜像与你正式版21H1的内部版本号不匹配,所以会触发OS不匹配报错;仅2004版本的Windows容器镜像支持在21H1系统的进程隔离模式下正常运行。

方案1:使用预配.NET运行时的2004系列官方镜像(推荐)

微软官方已发布基于nanoserver:2004构建的.NET运行时/SDK镜像,无需自行配置依赖,直接使用即可:

  • 若运行.NET Core/.NET 5+ 应用:选择对应版本的nanoserver-2004 tag,例如.NET 6运行时镜像为mcr.microsoft.com/dotnet/runtime:6.0-nanoserver-2004,.NET 7对应mcr.microsoft.com/dotnet/runtime:7.0-nanoserver-2004
  • 若运行.NET Framework应用:选择mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-2004,镜像已预装.NET Framework 4.8,自带完整PowerShell环境

多阶段构建Dockerfile示例(编译+运行.NET 6应用)

# 构建阶段:使用SDK镜像编译代码
FROM mcr.microsoft.com/dotnet/sdk:6.0-nanoserver-2004 AS build
WORKDIR /src
COPY MyApp.csproj .
RUN dotnet restore MyApp.csproj
COPY . .
RUN dotnet publish MyApp.csproj -c Release -o /app/publish

# 运行阶段:仅保留运行时和编译产物,镜像体积更小
FROM mcr.microsoft.com/dotnet/runtime:6.0-nanoserver-2004 AS final
WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "MyApp.exe"]

如果你的exe已经本地编译为自包含部署包,可直接简化为:

FROM mcr.microsoft.com/dotnet/runtime:6.0-nanoserver-2004
WORKDIR /app
COPY ./publish/ .
ENTRYPOINT ["MyApp.exe"]

方案2:基于servercore:2004自行安装依赖

如果你的.NET应用有额外系统依赖,需要PowerShell等工具,可选择windows/servercore:2004作为基础镜像自行配置环境:

FROM mcr.microsoft.com/windows/servercore:2004
WORKDIR /app

# 安装.NET运行时,可自行替换为对应版本的官方运行时安装包地址
RUN powershell -Command \
    Invoke-WebRequest -Uri [对应版本.NET运行时官方下载地址] -OutFile dotnet-runtime.exe ; \
    Start-Process -FilePath dotnet-runtime.exe -ArgumentList '/install /quiet /norestart' -Wait ; \
    Remove-Item -Force dotnet-runtime.exe

RUN setx PATH "%PATH%;C:\Program Files\dotnet"

COPY ./app/ .
ENTRYPOINT ["MyApp.exe"]

注意事项

  • 所有基础镜像请选择tag带2004的版本,更高版本的镜像无法在你当前的进程隔离环境下启动
  • 如果是32位.NET程序,需对应安装32位.NET运行时,或选择32位版本的基础镜像
  • 若程序需要WCF、注册表访问等Windows高级组件,优先选择servercore系列镜像,nanoserver镜像裁剪了大量系统组件,可能存在依赖缺失

内容的提问来源于stack exchange,提问作者Sorin-Alexandru Cristescu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:57:03