ASP.NET Core开发-Docker部署运行
ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行。我们将ASP.NET Core 部署在Docker 上运行。
大家可能都见识过Docker ,今天我们就详细了解一下Docker的用途,以及真实的应用场景。
Docker源于PaaS,PaaS的应用场景即是Docker的应用场景。
Platform as a Service: 平台即服务, 是面向软件开发者的服务, 云计算平台提供硬件, OS, 编程语言, 开发库, 部署工具, 帮助软件开发者更快的开发软件服务. 比如Google的GAE.
八个Docker的真实应用场景 http://dockone.io/article/126
Docker 最大优势:
静态打包:把应用程序及其运行时打包为一个镜像;
动态运行:以一个应用容器的形式运行这个应用。
我们无需再关心每个系统要安装什么环境,直接将镜像复制到系统中运行。
一次打包,直接运行。

参考Docker 的 logo ,我们可以将Docker 理解为鲸鱼上的集装箱,而鲸鱼就是操作系统。
Docker 是一个集装箱,将所有的环境打包好在一起,我们只需要考虑挪动集装箱。
下面我们就来正式开.NET Core 的Docker 之旅。
Docker 命令:
docker 命令相关了解。
docker images //镜像列表 docker ps -a //所有运行过的容器
docker ps -l //最后运行容器 docker export 容器id > 文件 //持久化容器 docker import 文件 //导入容器 cat export.tar | docker import - linezero/demo-export:latest docker save 镜像id > 文件 //持久化镜像 docker load < 文件 docker rm 容器id //删除容器 docker rmi 镜像id/镜像名称 //删除镜像 docker run 镜像 //运行
提示:可以使用 docker rm $(docker ps -q -a) 一次性删除所有的容器,docker rmi $(docker images -q) 一次性删除所有的镜像。
ASP.NET Core 运行于Docker
本文环境 :Ubuntu 14.04 Docker for Linux 1.11.2
首先我们创建一个ASP.NET Core 应用。
dotnet new -t web
然后在Program.cs 添加 UseUrls("http://*:5000")

还原 dotnet restore
发布 dotnet publish
我们在 publish 文件夹添加 Dockerfile文件
FROM microsoft/dotnet:latest COPY . /app WORKDIR /app EXPOSE /tcp ENTRYPOINT ["dotnet", "aspnetcore.dll"]
最终 publish 目录如下:

将publish 文件夹复制到Ubuntu系统
运行构建命令,构建Docker 镜像。
docker build -t linezero/demo .
后面的点是需要的。

然后运行容器
docker run -it -p 8080:5000 linezero/demo

容器跟镜像的关系,一个镜像可以创建多个容器。
如上面的,我可以再创建一个 docker run -d -p 8090:5000 linezero/demo
-d 参数也就是后台运行,然后通过docker ps 可以看到容器运行的状态,通过docker stop 容器id 停止。
Dockerfile Docker 容器配置文件
源码模板
FROM microsoft/dotnet:latest COPY . /app WORKDIR /app RUN ["dotnet", "restore"] RUN ["dotnet", "build"] EXPOSE /tcp ENTRYPOINT ["dotnet", "run"]
发布后模板
FROM microsoft/dotnet:latest COPY . /app WORKDIR /app EXPOSE /tcp ENTRYPOINT ["dotnet", "xx.dll"]
以上模板都依赖于 microsoft/dotnet 镜像,单独安装的命令为
docker pull microsoft/dotnet
也可以先不安装,build 的时候会为我们安装。国内速度可能有些慢,请耐心等待。
有了Docker dotnet 镜像,你无需折腾dotnet sdk 安装,镜像自带。
我们如果想将Docker 放置到其他机器运行,很简单。
直接保存镜像,然后复制镜像到其他机器,然后使用docker 命令load 既可。
docker save linezero/demo > demo.tar
然后加载命令
docker load < demo.tar
然后就可以使用docker run 运行程序了,无需关心程序需要哪些依赖。
如果你觉得本文对你有帮助,请点击“推荐”,谢谢。
ASP.NET Core开发-Docker部署运行的更多相关文章
- ASP.NET Core开发Docker部署
ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...
- ASP.NET Core开发期间部署到IIS自定义主机域名并附加进程调试
在.NET Framework环境下,我们经常会这么做 把一个web项目不经过发布直接部署到IIS里去,配置上主机名,修改一下hosts文件,就可以用自定义的域名来访问我们的应用程序,使用附加到进程( ...
- ASP.NET Core开发期间部署到IIS自定义主机域名并附加到进程调试
在.NET Framework环境下,我们经常会这么做 把一个web项目不经过发布直接部署到IIS里去,配置上主机名,修改一下hosts文件,就可以用自定义的域名来访问我们的应用程序,使用附加到进程( ...
- 记:ASP.NET Core开发时部署到IIS上出现HTTP Error 502.5 - Process Failure的解决方案
HTTP Error 502.5 - Process Failure Common causes of this issue: The application process failed to st ...
- windows/Linux下设置ASP.Net Core开发环境并部署应用
10分钟学会在windows/Linux下设置ASP.Net Core开发环境并部署应用 创建和开发ASP.NET Core应用可以有二种方式:最简单的方式是通过Visual Studio 2017 ...
- 自动部署Asp.Net Core到Docker
原文链接:个人博客:自动部署Asp.Net Core至Docker 本文简介 最近在开发一个管理系统,代码框架是用的前后台分离的方式 后台使用的是Asp.Net Core平台,开发所有业务,向前台提供 ...
- ASP.NET CORE做的网站运行在docker实践
用VS2017 建立了 DotNet Core 2.2 的网站后,如何转移到 Docker 下运行? 下面分两种方式来实践: 1.直接手动命今行,将本机目录映射进Docker,运行网站.2.制作 Im ...
- C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式
C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebReq ...
- ASP.NET Core使用Docker进行容器化托管和部署
一.课程介绍 人生苦短,我用.NET Core!今天给大家分享一下Asp.Net Core以Docker进行容器化部署托管,本课程并不是完完全全的零基础Docker入门教学,课程知识点难免有没覆盖全面 ...
随机推荐
- ASP.NET Core 十种方式扩展你的 Views
原文地址:http://asp.net-hacker.rocks/2016/02/18/extending-razor-views.html 作者:Jürgen Gutsch 翻译:杨晓东(Savor ...
- PHP是怎么运行的
这篇文章,研究一下PHP代码是如何解释和执行以及PHP脚本运行的生命周期. 概述 PHP服务的启动.严格来说,PHP的相关进程是不需要手动启动的,它是随着Apache的启动而运行的.当然,如果有需要重 ...
- 探索C#之微型MapReduce
MapReduce近几年比较热的分布式计算编程模型,以C#为例简单介绍下MapReduce分布式计算. 阅读目录 背景 Map实现 Reduce实现 支持分布式 总结 背景 某平行世界程序猿小张接到B ...
- Google分布式构建软件之四:分发构建结果
注:本文英文原文在google开发者工具组的博客上[需要FQ],以下是我的翻译,欢迎转载,但请尊重作者版权,注名原文地址. 之前的文章,介绍了Google在分布式构建软件过程中,如何把构建过程分发到许 ...
- EF:Fluent API 把一对多映射为一对一
假设有两张表:A表和B表.A表与B表在数据库中的关系是一对多,但我们需要在EF中映射为一对一. 首先在A实体类和B实体类中互相为对方增加一个实体类的属性: public A { public B B ...
- 薪资至少10K的一道题,你能拿下吗
我所了解的华为: 应届本科生8k+ 应届硕士生10k+ 应届博士生12k+ 看到后什么感想?有没有只恨生不逢时运不佳的感觉? 很多人做3年多甚至更久,才能达到这个薪资水平,还不如一个新生. 在我看来, ...
- 今天不谈技术,说说一些常用的软件~By 逆天
前端工具:http://www.cnblogs.com/dunitian/p/5640147.html 在线办公: http://word.baidu.com/welcome.html http ...
- Sql Server系列:聚合函数
1 SUM SUM是一个求和函数,返回指定列值的总和.SUM 只能用于数字列. 其中忽略 Null 值. 语法 SUM ( [ ALL | DISTINCT ] expression ) OVER ( ...
- Autocomplete 自动补全(Webform实战篇)
开篇语 因为项目中需要用到一个自动补全的功能,功能描述: 需求一:新增收件人的时候,自动下拉显示出数据库中所有的收件人信息(显示的信息包括:姓名-收件地址-联系方式) 需求二:选中一个值得时候,分别赋 ...
- 深入理解滚动scroll
前面的话 前面两篇博文分别介绍过偏移大小.客户区大小.本文介绍元素尺寸中内容最多的一部分——滚动scroll 滚动宽高 scrollHeight scrollHeight表示元素的总高度,包括由于溢出 ...