LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

ASP.NET Core 部署进化史:从 Windows IIS 到 Docker,再到国产 Linux 容器化实践

admin
2025年11月11日 19:3 本文热度 171

背景

过去十多年,国内大部分企业的核心系统都跑在 Windows Server + IIS + .NET Framework 这套组合上。它稳定、成熟、文档齐全,但问题也很明显:

授权成本高(Windows Server + SQL Server 许可证不是小钱);平台绑定死(离开 Windows 就跑不动);部署靠手工(每次上线都要配 IIS、改权限、清缓存);无法直接迁移到 Linux 或国产系统。

随着国家“信创”政策推进,越来越多企业被要求逐步用 国产 Linux 系统(如统信 UOS、银河麒麟、中标麒麟) 替代 Windows,并支持 国产 CPU 架构(鲲鹏、龙芯、兆芯等)

这不仅是合规要求,更是 IT 架构现代化的契机。而 ASP.NET Core 的跨平台特性,正好成为企业迁移的重要支撑——它让“一次编写,处处运行”从口号变成现实。


第一阶段:传统的 Windows + IIS 部署

部署模式

  • 系统:Windows Server
  • 宿主:IIS
  • 发布方式:Visual Studio 发布 → IIS 手动配置

特点

  • 图形化配置简单,适合运维人员上手
  • 生态成熟,工具链完整
  • 但环境依赖极强,不同服务器配置不一致 → “本地能跑,线上炸锅”

局限性

问题
说明
环境不一致
不同服务器 IIS 版本、运行时、配置文件差异大
自动化困难
发布流程无法脚本化,全靠人工操作
可移植性差
应用只能跑在 Windows 上
运维成本高
补丁、升级、回滚复杂,出错率高

✅ 这种方式在单机时代尚可,但在多地部署或信创替代场景下几乎无法适应。


第二阶段:Windows Docker —— 容器化的第一步

ASP.NET Core 的跨平台设计,让容器化成为可能。
微软推出了 Windows 容器,让企业可以在不离开 Windows 的情况下,先体验容器化带来的好处。

示例 Dockerfile

FROM mcr.microsoft.com/dotnet/aspnet:6.0-nanoserver-ltsc2022
WORKDIR /app
COPY ./publish .
ENTRYPOINT ["dotnet""YourApp.dll"]

运行命令

docker build -t imagesname:latest .

结果会提示成功信息:

docker run -d -p 8080:80 yourapp:latest

优势

  • 实现环境一致性(“开发环境怎么配,生产环境就怎么跑”)
  • 可结合 CI/CD,实现自动化发布
  • 是通往 Linux Docker 的过渡方案

局限

  • 镜像体积大(Windows 基础镜像动辄 1GB+)
  • 性能开销高(Windows 容器比 Linux 容器慢)
  • 不支持国产 Linux
  • 生态相对薄弱(很多工具不支持 Windows 容器)
  • Docker Windows 版本在一定条件下会收费

💡 一句话总结:这是“安全区内的第一步”,让你熟悉容器,为下一步做准备。


第三阶段:Linux Docker —— 全面跨平台与国产化支持

进入这一阶段,企业逐步完成从 Windows 容器 → Linux 容器 的迁移,
部署环境从 IIS 彻底转向 Docker + ASP.NET Core 的跨平台运行

构建标准 Linux 镜像(多阶段构建)

# 构建阶段
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY . .
RUN dotnet publish -c Release -o /app/publish

# 运行阶段(轻量镜像)
FROM mcr.microsoft.com/dotnet/aspnet:8.0-alpine
WORKDIR /app
COPY --from=build /app/publish .
EXPOSE 8080
ENTRYPOINT ["dotnet""YourApp.dll"]

推荐环境

类型
推荐
操作系统
统信UOS / 中标麒麟 / 银河麒麟
容器引擎
Docker CE / Podman / iSula
镜像仓库
Harbor / 私有Registry
编排系统
Kubernetes / K3s / Docker Compose

优点

✅ 完全脱离 Windows
✅ 支持国产 CPU(ARM64、LoongArch)
✅ 镜像轻量(Alpine 基础镜像仅 5MB)
✅ DevOps 友好,CI/CD 一键发布
✅ 支持多地部署与快速恢复


第四阶段:云原生与多地部署

容器化完成后,企业可以进一步演进为 云原生架构

  • 使用 Kubernetes 管理应用生命周期
  • 用 Helm / Kustomize 管理配置
  • 接入 Prometheus + Grafana + Loki 实现监控日志
  • 在国产云平台上运行(如麒麟云、移动云、华为云 Stack 等)
  • 实现“一次构建,随处运行”的目标。

单机部署与镜像分发:国产环境下的实战方案

很多企业环境暂时无法连公网,也没有私有仓库,
此时“单机离线部署镜像”成为最关键的问题。

场景

  • 开发机上构建好镜像;
  • 需要拷贝到另一台生产机运行;
  • 两台机器之间无公网,只能通过 U盘 / 局域网共享传输。

✅ 方法一:使用 docker save / docker load

导出镜像:

docker save -o myapp.tar myapp:latest

拷贝镜像文件:

scp myapp.tar user@192.168.1.20:/home/user/

目标机导入:

docker load -i myapp.tar

查看结果:

docker images

✅ 方法二:批量导出多个镜像

docker save -o all-images.tar myapp:latest redis:7 nginx:1.25
docker load -i all-images.tar

✅ 方法三:导出压缩包(推荐)

docker save myapp:latest | gzip > myapp.tar.gz
gunzip -c myapp.tar.gz | docker load

✅ 方法四:临时搭建本地镜像仓库

当有多台设备时,建议搭建一个局域网私有仓库:

docker run -d -p 5000:5000 --name registry registry:2

推送镜像:

docker tag myapp:latest 192.168.1.100:5000/myapp:latest
docker push 192.168.1.100:5000/myapp:latest

其他机器拉取:

docker pull 192.168.1.100:5000/myapp:latest

⚠️ 若使用 HTTP 仓库,请配置:

// /etc/docker/daemon.json
{
  "insecure-registries": ["192.168.1.100:5000"]
}

✅ 方法五:国产系统(UOS、麒麟)兼容命令

podman save -o myapp.tar myapp:latest
podman load -i myapp.tar

如需支持不同 CPU 架构:

docker buildx build --platform=linux/arm64,linux/amd64 -t myapp:latest .

七、迁移路线图与落地建议

阶段
平台
部署方式
迁移难度
特点
阶段1
Windows + IIS
手工部署
传统方式
阶段2
Windows + Docker
容器部署
平滑过渡
阶段3
Linux + Docker
容器部署
中高
实现国产化


实施建议

统一使用 .NET 8 / ASP.NET Core,优先容器化,再迁移到 Linux,自建或使用国产化镜像仓库,引入 CI/CD 实现持续交付,对多地单机节点用离线导入方案,建立配置中心与日志监控体系。


八、结语

从 Windows IIS 到 Linux Docker,
ASP.NET Core 的部署方式经历了从图形化手工到自动化容器化的深刻变革。

在信创和国产化的时代背景下,这不只是技术选择,更是企业 IT 架构重塑的必经之路。


该文章在 2025/11/12 8:45:33 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved