Docker4Dev #7 新瓶装老酒 – 使用 Windows Container运行ASP.NET MVC 2 + SQLExpress 应用
上一篇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。
Docker4Dev #7 新瓶装老酒 – 使用 Windows Container运行ASP.NET MVC 2 + SQLExpress 应用相关推荐
- Docker4Dev#7 使用 Windows Container运行ASP.NET MVC 2 + SQLExpress 应用
上一篇Windows Container文章中给大家介绍了如何使用Windows Container运行一个传统的.net 4.5 web应用程序,当时我们使用了默认的Visual Studio模版创 ...
- ipad2“新瓶装老酒” 苹果创新乏力?
不是iPad Plus,也不是什么iPad Advance,苹果新一代平板电脑叫"iPad 2",3月3日,iPad 2如约而至,发布会上苹果公司的灵魂角色乔布斯公布了新品的命名, ...
- 同洲电子转型之殇:新瓶装老酒的定位迷航
同洲电子在"互联网+"转型中不断试错以致迷失,回看这一段坎坷的转型过程,同洲打算以"新瓶装老酒"的方法,走出一条新大道,这一想法,从一开始就错了. 广电系统的骄 ...
- Docker4Dev #6 使用 Windows Container 运行.net应用
关于d4d系列:之前这个系列叫做docker4dotnet,因为当时主要是为了能够探索在docker上运行.net应用:现在我觉得应该叫做docker4developer,因为我希望能够帮助更多的开发 ...
- 在Azure Container Service创建Kubernetes(k8s)群集运行ASP.NET Core跨平台应用程序
引子 在此前的一篇文章中,我介绍了如何在本地docker环境中运行ASP.NET Core跨平台应用程序,看起来非常不错,不是吗?那么,如果我们希望真正在实际的生产环境去部署和运行这个应用程序,应该怎 ...
- 返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 Web API
返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 Web API 原文:返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 ...
- OpenShift 4.6 新特性 - 用 Windows MachineConfig Operator 管理 Windows Container
<OpenShift 4.x HOL教程汇总> 文章目录 查看Windows节点的Kubernete版本 安装访问Windows节点的SSH Jumphost 登录到Windows节点 在 ...
- Service Mesh 是新瓶装旧酒吗?
点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者 | 李云(花名: ...
- 6点叫醒全员的腾讯是枕戈待旦,还是如李彦宏说的“新瓶装旧酒”
2010中国(深圳)IT领袖峰会的主题是"后危机时代:IT引领中国经济发展新模式",当年BAT三巨头聚首论"云计算"实录: 李彦宏说:"......所 ...
最新文章
- 【POCO】POCO学习总结(二)——配置选择
- python使用正则表达式统计字符串中出现次数最多的数字
- 《从零开始学Swift》学习笔记(Day 52)——Cocoa错误处理模式
- 为什么不能够用unsigned 修饰 float和double
- DFT - Introduction to Test Models
- DBMS_SPACE包的使用
- python mysqldb 查询不到最新记录_python – MySQLdb是否缓存SELECT结果?
- 再把鼻子涂黑的飞鸽沟通最简单
- 为系统扩展而采取的一些措施——异步
- C++多线程编程(3) 异步操作类 std::future std::promise std::async
- 如何在.Netcore控制台应用中使用依赖注入(4)
- 人工智能能为旅游业带来多大的想象空间?
- 小凡虚拟机桥接到pc步骤实施
- 傅里叶变换 ~ 什么是傅里叶变换?
- sql 分组 行列转换
- 教你用迅雷下载百度网盘的文件
- 学专业计算机的配置,大学学计算机专业的学生电脑普遍配置是什么呢?
- linux vim命令详解 编辑文件 保存 退出
- Mac下解决硬盘无法读取问题Mounty for NTFS - 免费让 Mac 原生支持移动硬盘/U盘 NTFS 读写的必备驱动应用
- java中BOM是什么_Java-BOM与DOM对象
热门文章
- Centos-6.7下_Oracle 11gR2静默详细安装过程及排错
- 分布式服务框架 dubbo/dubbox 入门示例(转)
- [Swust OJ 404]--最小代价树(动态规划)
- ZOJ 1423 (Your)((Term)((Project))) (模拟+数据结构)
- C语言中auto,register,static,const,volatile的区别
- 拉丁法谚讲习1-24 【ZZ】
- [学习笔记]矩形面积并
- Git查看、删除、重命名远程分支和tag
- css揭秘之linear-gradient
- 软件工程个人最终总结