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:latestCOPY . /appWORKDIR /appEXPOSE 5000/tcpENTRYPOINT ["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:latestCOPY . /appWORKDIR /appRUN ["dotnet", "restore"]RUN ["dotnet", "build"]EXPOSE 5000/tcpENTRYPOINT ["dotnet", "run"]

 

发布后模板

FROM microsoft/dotnet:latestCOPY . /appWORKDIR /appEXPOSE 5000/tcpENTRYPOINT ["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 运行程序了,无需关心程序需要哪些依赖。

原文地址:http://www.cnblogs.com/linezero/p/docker.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/328558.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java异常捕获的一点感悟

转载自 java异常捕获的一点感悟 class Annoyance extends Exception {} class Sneeze extends Annoyance {} class Human { public static void main(String[] args) throws Exception { try { try { throw new Sneeze(); } catch ( Annoyance a ) { System.out…

android修改机型cpu,mac,androidid....

https://blog.csdn.net/yyy_bbb_lll/article/details/80734881 android 改机&#xff0c;抹机工具开发 一 2018年06月19日 16:43:40 阅读数&#xff1a;865 本工具以Xposed框架为基础&#xff0c;实现了改机软件所需的大部分功能。先贴界面图&#xff1a; 设备基本信息的显示…

data layui table 排序_浅谈layui中table的sort排序

table模块是layui框架最核心的组成之一&#xff0c;它用于对表格进行一些列功能和动态化数据操作&#xff0c;本文介绍了layui中table的sort排序&#xff0c;解决了在我们使用sort排序时可能遇到的一些问题。今天来谈谈table sort的那点事。预告一下&#xff0c;目的是做到前台…

gRPC C#学习

前些天gRPC 发布1.0 版本&#xff0c;代表着gRPC 已经正式进入稳定阶段。 今天我们就来学习gRPC C# 。而且目前也已经支持.NET Core 可以实现完美跨平台。 传统的.NET 可以通过Mono 来实现跨平台调用。 GitHub&#xff1a; https://github.com/grpc/grpc gRPC 简单介绍&#x…

Java日期及时间库插件 -- Joda Time.

转载自 Java日期及时间库插件 -- Joda Time.来到新公司工作也有一个多月了, 陆陆续续做了一些简单的项目. 今天做一个新东西的时候发现了 Joda Time的这个东西, 因为以前用的都是JDK原生的时间处理API, 大家都知道Java原生的时间处理的API一直都是不太好用, 所以这个有必要去…

电商校招指导

https://www.imooc.com/article/19998 https://www.imooc.com/article/18998 鼓励大家多总结 有道笔记可以记录下来 多年总结的 平时要多总结 https://www.imooc.com/article/19094 温馨tips&#xff1a; 校招的要求会比社招低很多&#xff0c;大家要把握好机会。因为校招…

大咖开讲:一小时学会.NET MVC开发的那些事儿

许多ASP.NET开发人员开始接触MVC认为MVC与ASP.NET完全没有关系&#xff0c;是一个全新的Web开发&#xff0c;事实上ASP.NET是创建WEB应用的框架&#xff0c;而MVC是能够用更好的方法来组织并管理代码的一种更高级架构体系。我们可将原来的ASP.NET称为ASP.NET Webform&#xff0…

HashMap的实现原理及其特点

HashMap的实现原理及其特点 2018年03月15日 20:43:08 阅读数&#xff1a;11045更多 个人分类&#xff1a; Java基础知识点 版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/lovewebeye/article/details/79573702 1) Hash…

重写equals就必须重写hashCode的原理分析

转载自 重写equals就必须重写hashCode的原理分析因为最近在整理Java集合的源码&#xff0c; 所以今天再来谈谈这个古老的话题&#xff0c;因为后面讲HashMap会用到这个知识点&#xff0c; 所以重新梳理下。如果不被重写&#xff08;原生Object&#xff09;的hashCode和equals是…

mysql unique count_MySQL - Count Number of Unique Values

问题If I have three columns:orderNumber, name, emailand I would like to count how many unique emails are in the table how would I go about doing so?A statement like:SELECT count(email) FROM ordersgives me the total count.I tried SELECT DISTINCT count(emai…

如何在 ASP.NET MVC 中集成 AngularJS(2)

在如何在 ASP.NET MVC 中集成 AngularJS(1)中&#xff0c;我们介绍了 ASP.NET MVC 捆绑和压缩、应用程序版本自动刷新和工程构建等内容。 下面介绍如何在 ASP.NET MVC 中集成 AngularJS 的第二部分。 ASP.NET 捆绑和压缩 CSS 和 JavaScript 的捆绑与压缩功能是 ASP.NET MVC 最流…

bean交个spring和new比较区别

在spring的配置文件中我们要使用DataSource这个对吧 这个bean将会被多个bean引用 通过ref"dateSource"这个引用 当我们要修改这个只要修改引用就好了 不需要修改很多了 主要是解耦 比如你有一个A类 在好几个类里边要调用到A的方法 new的话就要在每个类里都new…

什么是中间件

转载自 什么是中间件什么是中间件&#xff1f; 中间件就是程序中可织入的&#xff0c;可重用的&#xff0c;与业务逻辑无关的各种组件。中间件&#xff08; middleware &#xff09;是基础软件的一大类&#xff0c;属于可复用软件的范畴。顾名思义&#xff0c;中 间件处于操作…

guid判断是否有效_让我们一起啃算法----有效的括号

有效括号&#xff08;Valid-Parentheses&#xff09;题干如下&#xff1a;给定一个只包括 ‘(‘&#xff0c;’)’&#xff0c;’{‘&#xff0c;’}’&#xff0c;’[‘&#xff0c;’]’ 的字符串&#xff0c;判断字符串是否有效。有效字符串需满足&#xff1a;1.左括号必须用…

小白科普:从输入网址到最后浏览器呈现页面内容,中间发生了什么?

转载自 小白科普&#xff1a;从输入网址到最后浏览器呈现页面内容&#xff0c;中间发生了什么&#xff1f; 1、前言 这篇文章是应网友之邀所写&#xff0c;主要描述一下我们访问网站时&#xff0c; 从输入网址到最后浏览器呈现内容&#xff0c;中间发生了什么。 之前写过两…

面试官角度的JVM面试

一个面试官对JVM面试问题的分析 2017年02月19日 21:51:34 阅读数&#xff1a;18135 标签&#xff1a; 面试官JVM面试问题分析 更多 个人分类&#xff1a; JVM 这个帖子的背景是今晚看到je上这张贴&#xff1a;http://www.iteye.com/topic/715256&#xff0c;心血来潮写下的文…

如何在 ASP.NET MVC 中集成 AngularJS(3)

今天来为大家介绍如何在 ASP.NET MVC 中集成 AngularJS 的最后一部分内容。 调试路由表 - HTML 缓存清除 就在我以为示例应用程序完成之后&#xff0c;我意识到&#xff0c;我必须提供两个版本的路由表&#xff1a;一个运行在调试模式的应用程序下和一个运行在发布模式的应用程…

小菜:关于main方法的面试题

转载自 小菜&#xff1a;关于main方法的面试题问题&#xff1a;如果main方法被声明为private会怎样&#xff1f; 答案&#xff1a;能正常编译&#xff0c;但运行的时候会提示“main方法不是public的”。问题&#xff1a;如果去掉了main方法的static修饰符会怎样&#xff1f; 答…

kali linux改中文_kali linux 2019.4设置为中文方法

就在前天&#xff0c;2019年11月26日&#xff0c;kali Linux官网发布了最新版本&#xff1a;Kali Linux 2019.4发行版&#xff0c;此版本和之前相比变动很大&#xff0c;系统界面、主题、壁纸都灿然一新。Kali Linux2019.4版本包括了一些令人兴奋的新更新:一个新的默认桌面环境…

构建高可用ZooKeeper集群

ZooKeeper 是 Apache 的一个顶级项目&#xff0c;为分布式应用提供高效、高可用的分布式协调服务&#xff0c;提供了诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知和分布式锁等分布式基础服务。由于 ZooKeeper 便捷的使用方式、卓越的性能和良好的稳定性&#xff0c…