.NET中的Docker容器化是什么?如何为ASP.NET Core应用创建Dockerfile?

来源:这里教程网 时间:2026-02-21 17:31:28 作者:

.NET中的Docker容器化 是指将 .NET 应用(如 ASP.NET Core 项目)打包到 Docker 容器中,以便在任何支持 Docker 的环境中一致运行。这种方式解决了“在我机器上能运行”的问题,提升了部署效率、环境一致性与可扩展性。

为什么使用Docker容器化ASP.NET Core应用?

ASP.NET Core 天生支持跨平台和高性能,结合 Docker 可以轻松实现: 环境隔离:开发、测试、生产环境完全一致 快速部署:镜像一键构建,随处运行 微服务架构支持:每个服务独立容器化,便于管理 与 Kubernetes 等编排工具无缝集成

如何为ASP.NET Core应用创建Dockerfile?

在项目根目录下创建名为 Dockerfile 的文件(无扩展名),内容如下:

FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY . .
RUN dotnet restore "YourApp.csproj"
RUN dotnet build "YourApp.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "YourApp.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "YourApp.dll"]
说明: FROM ... AS base:使用官方 ASP.NET 运行时镜像作为基础运行环境 EXPOSE 80/443:声明容器监听的端口(HTTP/HTTPS) build 阶段:使用 SDK 镜像还原、编译代码 publish 阶段:发布应用到指定目录 final 阶段:最小化最终镜像,只包含运行所需文件 ENTRYPOINT:启动命令,运行 DLL

构建与运行Docker镜像

打开终端,在 Dockerfile 所在目录执行:

docker build -t yourapp:latest .

运行容器:

docker run -d -p 5000:80 --name myapp yourapp:latest

访问 https://www.php.cn/link/6060d322713797e84f598ea25c812cab 即可看到应用。

小贴士

提高构建效率的小建议:
nuget.config
.csproj
文件提前复制,利用 Docker 缓存避免每次恢复包
使用
.dockerignore
排除不必要的文件(如 bin、obj、.git)
根据实际使用的 .NET 版本调整镜像标签(如 6.0、7.0、8.0) 基本上就这些。只要写好 Dockerfile,你的 ASP.NET Core 应用就能轻松容器化,部署更简单可靠。

相关推荐

热文推荐