容器化.NET和.NET Core应用开发指南
1. 应用状态与配置管理
在应用版本迭代过程中,应用状态可能会发生结构变化,这需要开发者自行管理。以开源Git服务器GitLab的Docker镜像为例,其状态存储在卷上的数据库中。当升级到新版本时,应用会检查数据库,并在必要时运行升级脚本。
应用配置也是使用卷的一个重要场景。可以在镜像中内置默认配置集,同时创建一个卷,让用户用自己的值覆盖基础配置。
2. 将传统ASP.NET应用打包为Docker镜像
Microsoft在Docker Hub上提供了Windows Server Core基础镜像,它是Windows Server 2016的一个版本,具备完整服务器版本的大部分功能,但没有UI。不过,该镜像体积较大,压缩后在Docker Hub上为5GB,相比之下,Nano Server为380MB,Alpine Linux镜像仅2MB。但这意味着几乎可以将任何现有的Windows应用容器化,这是将系统迁移到Docker的一个好方法。
以NerdDinner为例,它是一个开源的ASP.NET MVC展示应用,可从CodePlex获取代码,由于自2013年以来未更新,是将旧ASP.NET应用迁移到Docker的理想候选者。
2.1 编写NerdDinner的Dockerfile
采用多阶段构建方法,以下是 dockeronwindows/ch-02-nerd-dinner 镜像的Dockerfile:
# escape=`
FROM
容器化.NET应用开发指南
超级会员免费看
订阅专栏 解锁全文
27

被折叠的 条评论
为什么被折叠?



