.NET应用容器化关键在于选对基础镜像、写好Dockerfile、规避Windows/Linux运行时差异;推荐.NET6+用Linux容器,需确保SDK与runtime版本完全匹配,使用mcr.microsoft.com/dotnet/sdk:8.0和aspnet:8.0等新镜像,并显式指定OS与架构。

直接用 .NET SDK 自带的 docker 模板就能快速容器化,关键不是“能不能”,而是选对基础镜像、写好 Dockerfile、避开 Windows/Linux 运行时差异这几个点。
确认项目类型和目标运行时
.NET 6+ 推荐统一用 Linux 容器(轻量、主流、CI/CD 友好),除非你必须依赖 Windows 特性(比如某些 COM 组件或 IIS 模块)。先执行:
dotnet --list-runtimes
登录后复制
看本地有没有 Microsoft.NETCore.App 或 Microsoft.AspNetCore.App 对应版本。Docker 镜像里要用完全匹配的 runtime 版本,否则运行时报错“Could not load file or assembly”。
用 CLI 快速生成 Dockerfile(推荐新手)
在项目根目录(.csproj 所在目录)运行:
dotnet publish -c Release -o ./publish docker build -t myapp:latest .
登录后复制
但更省事的是直接让 SDK 帮你生成标准 Dockerfile:
标签: linux docker windows 编码 app 端口 iis curl ai amd win microsoft
还木有评论哦,快来抢沙发吧~