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:latestdocker 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 运行程序了,无需关心程序需要哪些依赖。

如果你觉得本文对你有帮助,请点击“推荐”,谢谢。

《ASP.NET Core跨平台开发从入门到实战》 京东 淘宝 亚马逊 当当

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 与 Docker 入门课程说明

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

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

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

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

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

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

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

  6. netcore docker_深入浅出 ASP.NET Core 与 Docker 入门课程目标说明

    课程目标说明https://www.zhihu.com/video/1241137370310508544 <深入浅出 http://ASP.NET Core 与 Docker >是一门新 ...

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

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

  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. XML 的简介与开发
  2. python后端需要什么基础_python做后端好吗
  3. 幅度为a0的载波由峰峰值_十个医疗箱都不够用?戒掉这些坏习惯,满活跃值闯进决赛圈不是梦!...
  4. 面试题收集——Java基础部分(一)
  5. 实验一 命令解释程序的编写
  6. php 抽象类 接口 区别,PHP中抽象类和接口有什么区别
  7. 三面,字节跳动电商Java面经(已过)
  8. 《深入学习VMware vSphere 6》——2.2 vSphere 6实验环境需求
  9. 【离散数学】单射、满射与双射
  10. 【数据分析】滴滴数据分析岗实习经验
  11. Ping IP时出现 request time out怎么解决?
  12. 如何在小内存主机上搭建博客
  13. win10系统怎么安装显卡驱动,驱动人生详细教程
  14. 中国新一代人工智能治理原则发布 | 发展负责任的人工智能
  15. CynosDB for PostgreSQL 一主多读架构设计及优化[内附独家PPT]
  16. switch语句的ns图怎么画_visio画ns图.doc
  17. Java——快手2020校园招聘秋招笔试--[编程题]运动会
  18. 2022年秋季期寒假总结
  19. 英频杰Indy固件手册中文版(一)
  20. Linux简易教程 Linux系统起源简介

热门文章

  1. php重定向在header头加参数,php的header重定向的域名参数后边可以加路由吗?
  2. matlab中garchred是什么意思,MATLAB里的aic是啥意思
  3. channelinactive触发后不关闭channel_golang chan 最详细原理剖析,全面源码分析!看完不可能不懂的!...
  4. JAVA的日期与毫秒的相互转换
  5. 20190925:(经典算法系列)河内之塔
  6. python rpc_对python调用RPC接口的实例详解
  7. VB添加listbox 的水平卷动轴
  8. 拯救万千学子于水深火热之中!Facebook开源无梯度优化工具
  9. 特斯拉最强自动驾驶系统登场,实测视频火热出炉
  10. AlphaGo Zero你也来造一只,PyTorch实现五脏俱全| 附代码