如何容器化你的 ASP.Net Core

Docker 相比 虚拟机 具有更轻量级,更便捷的特性,为什么这么说呢?虚拟机通常打包了完整的操作系统,而容器只仅仅打包了你的应用程序,运行环境及相关依赖库,Docker 是一种开源的工具包,帮助你更加方便的构建,部署,管理容器。

容器通常被定义为包含了 代码和相关依赖库 的应用程序软件单元,这里的 单元 意味着应用程序运行在拥有自己的独立环境上,言外之意就是容器和容器之间是相互隔离的,值得注意的是,虽然容器之间是隔离的,但它们还是共享一个操作系统,这个操作系统可以是 Windows 或者 Linux,这也是Docker的诱惑点之一,这篇文章我们将会讨论如何在 Windows 平台上使用  Docker 部署 ASP.Net Core。

Windows 上安装 Docker

要想在 Windows 上安装 Docker,可以参考官方链接:https://docs.docker.com/docker-for-windows/install/  ,由于篇幅的原因,这里就不赘述了,根据文档所述安装好之后,可以使用如下命令来测试 Docker 是否已经安装成功。


docker --version

创建含 Docker 的 Asp.Net Core 项目

使用 Visual Studio 2019 创建  ASP.Net Core Web Application 模板的时候,记得勾选一下 Enable Docker Support ,在 OS 处选好 Windows 即可,如下图所示:

当项目创建好之后,解决方案下会自动生成一个 Dockerfile 文件,如下图所示:

Dockerfile 大体如下:


FROM microsoft/aspnet:4.7.2-windowsservercore-1803
ARG source
WORKDIR /inetpub/wwwroot
COPY ${source:-obj/Docker/publish} .

Dockerfile 的目的主要是用来描述如何构建 docker images,你也可以根据自己的场景修改默认的 dockerfile ,比如说修改 From 镜像名将 host 从 windows 切换到 linux 上。

部署 ASP.Net Core 到 Docker

首先通过 Visual Studio 对项目进行 build,然后用管理员模式开启 cmd 窗口,在命令窗口上输入如下命令。


docker build -t dockersample .

上面的命令将会把应用程序构建成名为 dockersample 的镜像,下图就展示了这个 build 的过程。

images 生成好之后,接下来就可以通过 images 实例化出一个 application 容器,使用如下命令即可。


docker run -d -p 8080:80 --name myapp dockersample

上面的 myapp 表示你的容器名字, 后面的 dockersample 就是之前构建好的镜像名,如果一切正常,此时应用程序就成功跑在 container 上了,你可以通过浏览器键入 http://localhost:8080/api/values 地址来调用 ValuesController.Get() 方法判断是否一切正常。

Docker 的一些常用命令

要想列出所有的 images,可以使用如下命令。


docker image ls

要想列出所有的容器,使用如下命令。


docker container ls –all

要想停止容器,使用如下命令。


docker stop containername

要想删除某一个容器,可以使用如下命令。


docker rm containername

值得注意的是,如果要删除的容器正在运行中,此时你是删除不掉的,正确的做法是先停止容器,然后再删除。

容器给了应用程序极小轻量的运行环境,相比虚拟机,容器更加轻量级,而且容器一旦启动,你的应用程序几乎同时启动,Docker 是一种开源的容器化解决方案,现如今也是主流的容器化方式,关于更多的 Docker 讨论会在后面的文章中一一展开。

译文链接:https://www.infoworld.com/article/3314897/how-to-dockerize-an-aspnet-core-application.html

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

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

相关文章

tableau三轴合并_《Tableau数据可视化实战》——1.12节合并不同数据源-阿里云开发者社区...

本节书摘来自华章社区《Tableau数据可视化实战》一书中的第1章,第1.12节合并不同数据源,作者(美)Ashutosh Nandeshwar,更多章节内容可以访问云栖社区“华章社区”公众号查看1.12 合并不同数据源通常,我们的数据以不同格式或者不同…

android ble status,Android BLE peripheral disconnects with status code BLE_HCI_INSTANT_PASSED(0x28)

问题My application is able to connect to the BLE peripheral(which is an OBDII/J1939 device) device successfully.2018-01-24 14:58:38,413 INFO LogUtil - GATT Server Status (0) : BLE_HCI_STATUS_CODE_SUCCESS(0x00)2018-01-24 14:58:38,414 INFO LogUtil - GATT Se…

2018年大数据趋势

作者 | Keith D. Foote翻译 | 品觉笔记本电脑、智能手机、传感器,都为物联网带来了大量数据。这是获得竞争优势(或者保持竞争力)的重大机遇,前提是企业足够灵活,可以管理好数据并把数据变成有用的商业智能。人脑能高效…

关于商品分类 商品表和属性表的设计

以前有这样的一个需求,不考虑像京东或者淘宝这样分类下有子分类的情况,只考虑一层分类的情况下,可以随便添加分类,可以任意给商品添加属性,而不需要更 改表的结构. 于是设计了一个这样的结构,实现还是可以实现,一直在用,但是在操作上比较麻烦,大家讨论下有没有更好的方式. ----…

Redis五种数据结构

1、String这是最简单的Redis类型。如果只使用这种类型,Redis就像一个可持久化的Memcached服务器。2、ListRedis的List是基于双向链表实现的,可以支持反向查找和遍历。常用案例:聊天系统、社交网络中获取用户最新发表的帖子、简单的消息队列、…

es创建索引数量多了好还是少了好_Elasticsearch性能优化总结

Elasticsearch是目前大数据领域最热门的技术栈之一,经过近8年的发展,已从0.0.X版升级至6.X版本,虽然增加了很多的特性和功能,但是在主体架构上,还是没有太多的变化。下面就把我对于ES使用实践的一些经验总结一下,供大家参考;也请大家拍砖。 一、 硬件环境选择: 如果有条…

C# NUnit的安装

前言:NUnit是什么?NUnit 是一个单元测试框架,专门针对于.NET来写的。NUnit是xUnit家族种的第4个主打产品,完全由C#语言来编写,并且编写时充分利用了许多.NET的特性,比如反射,客户属性等等。最重要的一点是它适合于所有…

shiro单点登录原理_SSO单点登录三种情况的实现方式详解

单点登录(SSO——Single Sign On)对于我们来说已经不陌生了。对于大型系统来说使用单点登录可以减少用户很多的麻烦。就拿百度来说吧,百度下面有很多的子系统——百度经验、百度知道、百度文库等等,如果我们使用这些系统的时候,每一个系统都需…

[转]解决Windows 7下Windows Live Messenger(MSN) 9.0在一直停靠任务栏而不在系统栏显示的问题...

解决Windows 7下Windows Live Messenger(MSN) 9.0在一直停靠任务栏而不在系统栏显示的问题 用上Windows 7后,MSN一直停靠任务栏而不在系统栏显示,关闭窗口就会退出MSN,解决方法很简单。 1、退出MSN 2、点击“开始”菜单->Windows Live->…

中国癌症大数据出来了!每年126万例癌症死亡本可避免

01 中国本土大样本数据:癌症真的可预防!2017年,由全国肿瘤登记中心副主任陈万青教授、美国癌症协会Farhad Islami教授牵头的生活方式和感染对中国癌症发病和死亡影响的研究,发表在Annals of Oncology上[1,2]。该研究由美国癌症研究…

NPOI 在指定单元格导入导出图片

NPOI 在指定单元格导入导出图片Intro我维护了一个 NPOI 的扩展(WeihanLi.Npoi),主要用来导入导出 Excel 数据,最近有网友提出了导入 Excel 的时候解析图片的需求,于是就有了本文的探索导入Excel 时解析图片xls 和 xlsx 的 API 稍有不同&#…

android 设置folder类型,正确配置你的 Android 项目

简评:优秀的 Android 项目从配置开始。: )作者在这里介绍了一个 Android 项目应该有的配置,文中讲到的内容大家都可以运用在自己的 Android 模板项目中。gitignore当你新建 Android 项目时,默认会生成 gitignore 文件,但并没有包含…

人就是这样啊

人类自然的天性,是做错事只会责备别人,而绝不会责备自己,我们每个人都是如此。不要评议人,免得为人所评议。不要评批他们,我们在相同的情形下,也会像他们一样。林肯从苦痛的经验中知道,尖锐的评…

开发物体识别桌、_【课程总结】AR系统开发“秘籍”大揭秘!

导读:AR技术飞速发展,被广泛应用于游戏、医疗、旅游、电商等行业。那么对于AR系统的整体设计和应用是如何操作的呢?商汤泰坦公开课第006期联合“SLAM技术及应用”暑期学校与研讨会共同推出“移动增强现实系统的设计与应用案例解析”&“AR…

商业项目中最受欢迎的 7 种编程语言

【导读】:Semaphore 是一个国外持续集成/持续部署方案服务商。Semaphore 称自己在过去三年对其开发者用户进行调查,调查他们在开发商业项目时一般都使用哪些语言。这些数据基于成千上万个在 Semaphore 上进行测试和部署的项目的人。所以现在这是迄今为止…

html云雾效果,PS中怎么做像这样的云雾效果?(有图)?

回答:制作步骤:1.按【CtrlO】键打开一幅风景素材图像。2.制作云彩效果。选择Photoshop CS6工具箱中的矩形选框工具 ,在画面中绘制选区,使用默认前背景色。单击“图层”面板上的“创建新图层”按钮 ,新建“图层1”在菜单…

为or、in平反——or、in到底能不能利用索引?

先说一个笑话,作为开场白。俺也换换风格试一试,呵呵。 在以前,有三个书生赶考,在路上遇到了一个算命先生,于是就问算命先生:我们三个人赶考,结果如何呀?算命先生伸出来了一个手指头&…

iNeuOS 工业互联网操作系统,在核工业测控领域的成功应用

注:由于本项目涉及核工业,具体细节保密。1. 前言iNeuOS工业互联网操作系统iNeuOS,公众号:iNeuOS“iNeuOS工业互联操作系统”面向未来,公众号首秀iNeuOS工业互联网操作系统积累了10多年工业领域知识和经验&#xff0…

5 thinkpad 黑将评测_王中林院士团队黑科技:80秒,将PM 2.5降至0!把森林氧吧搬回家!...

空气负离子(NAI)被称为“空气维生素”,它们广泛用于室内空气净化,包括去除空气中的颗粒物、对挥发性有机化合物进行氧化分解和抑菌。除了从森林、瀑布和暴雨等自然来源外,目前还开发了基于电晕放电、热离子电子发射、光激发和勒纳效应的纳米空…

详细解读给数据挖掘新手的6个案例

1946年2月16日,是一个值得纪念的日子。在这一天,人类历史上真正意义上的第一台电子计算机诞生了,此后计算机便随着科技的发展以强大的生命力飞速发展着。而作为用来定义计算机程序的形式语言——编程语言也紧跟计算机其后蓬勃发展&#xff0c…