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跨平台或扫描二维码关注

ASP.NET Core开发-Docker部署运行相关推荐

  1. ASP.NET Core开发Docker部署

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

  2. 基于Citus和ASP.NET Core开发多租户应用

    Citus是基于PsotgreSQL的扩展,用于切分PsotgreSQL的数据,非常简单地实现数据"切片(sharp)".如果不使用Citus,则需要开发者自己实现分布式数据访问层 ...

  3. Asp.Net Core 发布和部署(Linux + Jexus )

    前言 在上篇文章中,主要介绍了 Dotnet Core Run 命令,这篇文章主要是讲解如何在 asp.net core 中对我们的已经完成的程序进行发布和部署. 有关如何使用 Nginx 进行部署, ...

  4. Asp.Net Core 发布和部署( MacOS + Linux + Nginx )

    前言 在上篇文章中,主要介绍了 Dotnet Core Run 命令,这篇文章主要是讲解如何在Linux中,对 Asp.Net Core 的程序进行发布和部署. 有关如何在 Jexus 中进行部署,请 ...

  5. 【Docker】Asp.net core在docker容器中的端口问题

    还记得[One by one系列]一步步学习docker(三)--实战部署dotnetcore中遇到的问题么?容器内部启动始终是80端口,并不由命令左右. docker run --name cont ...

  6. 送福利 | 送书5本《ASP.NET Core项目开发实战入门》带你走进ASP.NET Core开发

    <ASP.NET Core项目开发实战入门>从基础到实际项目开发部署带你走进ASP.NET Core开发. ASP.NET Core项目开发实战入门是基于ASP.NET Core 3.1 ...

  7. 深入浅出 ASP.NET Core 与 Docker 入门课程说明

    点击蓝字"角落的白板报"关注我哟 加个"星标★",好文必达! 深入浅出 ASP.NET Core 与 Docker 入门课程说明 <深入浅出 ASP.NE ...

  8. ASP.NET Core amp; Docker 实战经验分享

    一.前言 最近一直在研究和实践ASP.NET Core.Docker.持续集成.在ASP.NET Core 和 Dcoker结合下遇到了一些坑,在此记录和分享,希望对大家有一些帮助. 二.中间镜像 我 ...

  9. Visual Studio 2017 ASP.NET Core开发

    Visual Studio 2017 ASP.NET Core开发,Visual Studio 2017 已经内置ASP.NET Core 开发工具. 在选择.NET Core 功能安装以后就可以进行 ...

最新文章

  1. @vail 判断某字段在范围内_月经两三天就没了和五天以上才没有,哪个更好?怎么判断月经量...
  2. 用户与IoT同享一个WLAN时:弹性至关重要
  3. react显示隐藏动画
  4. 【高斯消元】兼 【期望dp】例题
  5. Little Sub and Johann
  6. 计算不规则图形周长_7.2三年级上册数学《周长》同步练习,附答案
  7. 单循环链表中设置尾指针比设置头指针更好的原因
  8. linux下安装phantomjs
  9. 解决SQL server不支持utf8,php却用utf8的矛盾问题
  10. 计算机设备安装属于劳务吗,​安装服务费属于劳务费吗
  11. Lengauer-Tarjan算法--支配树构造(bzoj 2815: [ZJOI2012]灾难)
  12. Mybatis-学习笔记(4)1对1、1对多、多对多
  13. 简述MAC地址与IP地址的关系
  14. NIO蔚来ET5/ET7电动汽车维修手册电路图用户手册技术资料
  15. html如何让标签居中显示,HTML怎么让标签居中
  16. MOS管、IGBT、BJT的区别
  17. lldb连接debugserver报错failed to get reply to handshake packet
  18. simulink方框_simulink模型引用
  19. java 给pdf文档加水印
  20. 【C++错误处理】no matching function for call to transform

热门文章

  1. Apache-Jmeter监控服务资源
  2. centos linux 禁止ping
  3. ASP.NET Web API中实现版本
  4. 基于事件驱动架构构建微服务第12部分:向Apache KAFKA生成事件
  5. Dapr牵手.NET学习笔记:想入非非的服务调用
  6. 统信软件用一年时间跨越式发展说明了一件事
  7. 快速排序的性能和名字一样优秀
  8. 谈谈低代码趋势和开发人员的未来
  9. [Abp 源码分析]DTO 自动验证
  10. gRPC-微服务间通信实践