50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

Docker4Dev #7 新瓶装老酒 – 使用 Windows Container 运行 ASP.NET MVC 2 + SQLExpress 应用

  • 2017-08-21
  • 本文字数:1434 字

    阅读完需:约 5 分钟

上一篇 Windows Container 文章中给大家介绍了如何使用 Windows Container 运行一个传统的.net 4.5 web 应用程序,当时我们使用了默认的 Visual Studio 模版创建了一个简单的项目,而且没有链接数据库。我相信使用.net 进行应用开发的程序员们一定在想,如果我有一个很老的项目,比如使用的是 asp.net mvc 3 和 sql server,那是否可以使用 Windows Container 进行部署呢?所以这次我找来了一个 2010 年的老项目,使用的是 asp.net mvc 2 和 sql server 运行,这个项目已经有 7 年之老,应该比较有代表性了。

首先我将这个项目导入到 Visual Studio 2017 中,并顺利完成了解决方案的升级,中间没有报任何的错误,现在,我需要启动一个 SQL Server 的容器来导入这个项目所使用的数据库,运行一下命令启动 Sql Express 容器。

docker run -d -p 1433:1433 -e sa_password=P2ssw0rd -e ACCEPT_EULA=Y -v c:\temp:c:\temp --name sql harbor-bj.devopshub.cn/microsoft/mssql-server-windows-express

注意这里我使用了 vol 映射将本机的 c:\temp 目录映射到容器内的 c:\temp 目录,这样我就可以将数据库文件放入这个目录,并在容器内挂接到 sql server 上面。

同样,我们使用 docker inspect 命令获取这个容器的 ip 地址:

docker inspect -f "{{ .NetworkSettings.Networks.nat.IPAddress }}" sql

首先我们打开 SQL Server Management Studio,链接到这个容器上,这里输入以上命令获取的 ip 地址和在 docker run 命令中所指定的 sa 密码:

将数据库 mdf 文件复制到本地的 c:\temp 目录中,然后进行数据库挂接,注意下图中 SQL Management Studio 所访问的是容器内的目录,因为做了 vol 映射,我们可以访问在本机的 c:\temp 目录中的 mdf 文件。

现在对我们的 asp.net mvc 2 项目中的 web.config 文件进行修改,将 ConnectionString 指向运行在容器中的 SQL Server 上面。

然后在项目中添加 Dockerfile.windows 文件:

FROM harbor-bj.devopshub.cn/microsoft/iis
SHELL ["powershell"]

RUN Install-WindowsFeature Net-Framework-45-ASPNET ; \
 Install-WindowsFeature Web-Asp-Net45

ARG source=.
WORKDIR 'c:\app'

RUN Remove-Website -Name 'Default Web Site'
RUN New-Website -Name 'aspnet45docker' -Port 80 \
 -PhysicalPath 'c:\app' -ApplicationPool '.NET v4.5'

EXPOSE 80
COPY $source .

现在我们就可以发布站点并用 docker 打包了,进入到发布完成的目录,运行命令:

docker build -f Dockerfile.windows -t tailspintoys:win-v1 .

打包完成,运行并获取容器 ip 地址:

docker run -itd -p 81:80 --name tp tailspintoys:win-v1
docker inspect -f "{{ .NetworkSettings.Networks.nat.IPAddress }}" tp

这个项目的源码我已经放在了 GitHub 上,大家如果想尝试可以从以下地址获取:

https://github.com/lean-soft/TailspinToys-docker

作者简介:

徐磊:一名写了十几年代码但还没写够的程序员,微软最有价值专家(MVP)之一。1999 年,毕业于北京理工大学工业管理专业和计算机专业;2001 年,硕士毕业于 UNSW 信息工程专业。从事过网管、技术支持、网络、软件开发等工作。2004 年加入了 SSW( www.ssw.com.au );2005 年组建 SSW 中国研发中心任 Country Manager;2012 年成立独资公司 SSW LIMITED BEIJING 任 GM;2014 年创立 Lean-Soft,专注于软件工程领域的创新实践。个人博客站点: http://devopshub.cn ,微信订阅号  devopshub。

2017-08-21 08:041930

评论

发布
暂无评论
发现更多内容

HarmonyOS:@AnimatableExtend 装饰器自学指南

李游Leo

HarmonyOS HarmonyOS NEXT

AI招聘APP的技术框架

北京木奇移动技术有限公司

AI应用 AI招聘 软件外包公司

如何在IDEA中借助深度思考模型 QwQ 提高编码效率?

阿里云云效

阿里云 云原生 通义灵码

HarmonyOS NEXT 实现拖动卡片背景模糊效果

威哥爱编程

HarmonyOS HarmonyOS框架 HarmonyOS NEXT

SvelteKit 最新中文文档教程(9)—— 部署静态站点与单页应用

冴羽

vue.js 前端 React Svelte SvelteKit

AI招聘APP的技术难点

北京木奇移动技术有限公司

AI智能体 AI招聘 软件外包公司

广告发布平台(源码+文档+讲解+演示)

深圳亥时科技

哈尔滨网络安全等级保护测评

黑龙江陆陆信息测评部

P6户外LED显示屏的特点有哪些?

Dylan

广告 LED显示屏 全彩LED显示屏 户外LED显示屏 led显示屏厂家

低代码实验案例设计图文操作指南!4C大赛 AI 通识教育实验创新微课赛道火热报名中

ModelWhale

#人工智能 中国大学生计算机设计大赛 4C大赛 #微课 #教育

AI赋能时尚零售:与多变时代对话的新篇章

第七在线

备赛指南 | 4C大赛大数据主题赛多届国赛获奖作品指导老师经验分享实录已整理!

ModelWhale

Python 人工智能 大数据 中国大学生计算机设计大赛

HarmonyOS NEXT 基于原生能力获取视频缩略图

威哥爱编程

HarmonyOS ArkTS HarmonyOS框架 HarmonyOS NEXT

淘宝商品SKU信息抓取实战:5步搞定API封装(附代码)

代码忍者

淘宝API接口

Apache SeaTunnel同步MySQL到Doris的优化策略

Apache SeaTunnel

如何在IDEA中借助深度思考模型 QwQ 提高编码效率?

阿里巴巴云原生

阿里云 云原生 通义灵码

08.面向对象的特性

杨充

AI招聘APP的核心功能

北京木奇移动技术有限公司

AI智能体 AI招聘 软件外包公司

北京国家会计学院“数智财务高端人才”培养项目启动报名!

用友智能财务

财务 会计

Rust 开发者必备:三分钟搞定视频缩略图生成

Yeauty

rust ffmpeg Video media audio

金三银四真实面经分享

王中阳Go

Go 面试 后端

最佳实践 | 在 EMR Serverless Spark 中实现 Doris 读写操作

阿里云大数据AI技术

大数据 spark Serverless 云原生 EMR

年薪50W+的测试开发工程师,都在偷偷学这些技能

测试人

软件测试

AI招聘APP的上线

北京木奇移动技术有限公司

AI智能体 AI招聘 软件外包公司

「高盛」最新人形机器人研报:主流人形机器人公司梳理和商业化瓶颈(附报告)

机器人头条

科技 大模型 人形机器人 具身智能

图灵数据洞察平台-TDF(Turing Data Finder)

百度Geek说

百度 用户行为分析 数据分析、 增长营销

FeedbackStream:8 分钟创建 AI 面试智能体;Moshi 开源图像理解实时语音模型 MoshiVis 丨日报

声网

《Operating System Concepts》阅读笔记:p473-p480

codists

操作系统

Spring Boot 与 MyBatis Plus 整合 KWDB 实现 JDBC 数据访问

KaiwuDB

数据库 KaiwuDB

2025杭州国际安防产品博览会(浙江安博会)

AIOTE智博会

安博会 浙江安博会

Docker4Dev #7 新瓶装老酒 – 使用 Windows Container运行ASP.NET MVC 2 + SQLExpress 应用_微软_徐磊_InfoQ精选文章