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 5000/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 5000/tcp

ENTRYPOINT ["dotnet", "run"]

发布后模板

FROM microsoft/dotnet:latest

COPY . /app

WORKDIR /app

EXPOSE 5000/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实践交流群: 133144964

博客示例代码GitHub:https://github.com/linezero/Blog

ASP.NET Core开发Docker部署的更多相关文章

  1. ASP.NET Core开发-Docker部署运行

    ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...

  2. ASP.NET Core开发期间部署到IIS自定义主机域名并附加进程调试

    在.NET Framework环境下,我们经常会这么做 把一个web项目不经过发布直接部署到IIS里去,配置上主机名,修改一下hosts文件,就可以用自定义的域名来访问我们的应用程序,使用附加到进程( ...

  3. ASP.NET Core开发期间部署到IIS自定义主机域名并附加到进程调试

    在.NET Framework环境下,我们经常会这么做 把一个web项目不经过发布直接部署到IIS里去,配置上主机名,修改一下hosts文件,就可以用自定义的域名来访问我们的应用程序,使用附加到进程( ...

  4. 记: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 ...

  5. windows/Linux下设置ASP.Net Core开发环境并部署应用

    10分钟学会在windows/Linux下设置ASP.Net Core开发环境并部署应用 创建和开发ASP.NET Core应用可以有二种方式:最简单的方式是通过Visual Studio 2017 ...

  6. ASP.NET Core使用Docker进行容器化托管和部署

    一.课程介绍 人生苦短,我用.NET Core!今天给大家分享一下Asp.Net Core以Docker进行容器化部署托管,本课程并不是完完全全的零基础Docker入门教学,课程知识点难免有没覆盖全面 ...

  7. 自动部署Asp.Net Core到Docker

    原文链接:个人博客:自动部署Asp.Net Core至Docker 本文简介 最近在开发一个管理系统,代码框架是用的前后台分离的方式 后台使用的是Asp.Net Core平台,开发所有业务,向前台提供 ...

  8. 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 ...

  9. 基于Microsoft Azure、ASP.NET Core和Docker的博客系统

    欢迎阅读daxnet的新博客:一个基于Microsoft Azure.ASP.NET Core和Docker的博客系统   2008年11月,我在博客园开通了个人帐号,并在博客园发表了自己的第一篇博客 ...

随机推荐

  1. 用SQLyog或Navicat远程连接数据库

    以SQLyog为例(Navicat同理): 登录远程数据库服务器查看当前存在用户:即点击用户管理器(人像图标),查看用户. 1)如果某一用户 主机一栏中是"%",则表示本用户是开放 ...

  2. 关于latch: cache buffers chains的sql优化

    前段时间,优化了一些耗buffer比较多的sql,但是CPU使用率还是没下来 . 查看操作系统CPU使用率 查看awr,发现又有一条超级耗性能的sql冒出来了. 该SQL每次执行耗费3e多个buffe ...

  3. javascript中点击事件传入this的用法

    在script中有几种绑定事件的方法,有的在绑定函数中传入this参数,有的没有,那么,它们之间到底有什么区别呢? <!DOCTYPE html> <html lang=" ...

  4. Hermite (埃尔米特)曲线

    Hermite 曲线 已知曲线的两个端点坐标P0.P1,和端点处的切线R0.R1,确定的一条曲线. 参数方程 1. 几何形式 2. 矩阵形式 3. 推导 例子分析 如上图有四个点,假如P0.P2是端点 ...

  5. 从PDF复制到word(换行问题)

    当我们从pdf文档中复制一部分内容到word的时候,pdf的自动换行会自动给文字添加换行,也就是一个回车,让文字另起一行,这样粘贴到word中的时候,word中也会有很多换行符,排版比较麻烦,需要一个 ...

  6. PS一些技巧

    色阶的解决办法 我们做效果图的时候经常会使用大面积渐变,时常会出现比较严重的色阶问题,通常出现这些明显色阶的时候,可以通过使用高斯模糊对色阶进行模糊化处理. 在使用PS CC的过程中,笔者经常遇到假死 ...

  7. 2014-4-5安装python以及基础知识

    1.下载安装 从python官网下载python2.7.6 https://www.python.org/download/releases/2.7.6 建议用迅雷下载 会比较快 2.交互式解释器 运 ...

  8. java项目连接access数据库

    1.导入Access_JDBC30.jar到项目中 jar包百度云链接:https://pan.baidu.com/s/10HFM3HomMArvfHjklA_1MA 密码:0qxp 项目名称-> ...

  9. HDU 4960 (水dp)

    Another OCD Patient Problem Description Xiaoji is an OCD (obsessive-compulsive disorder) patient. Th ...

  10. noip模拟赛 集合

    分析:感觉像是贪心,再看数据范围这么大,肯定是贪心没错.但是要怎么贪呢?主要的思想是让每次往上加的数尽量多,肯定要先把0分裂,如果能正好一起跳到最终状态就好.举个例子:5,3,2,1,最大值比次大值大 ...