第 10 章 部署

10.1 部署到 IIS

ASP.NET Core 应用程序支持部署到 IIS 中,之后它将作为应用程序的反向代理服务器和负载均衡器,向应用程序中转传入的 HTTP 请求

默认情况下,ASP.NET Core 项目的 Program 类使用如下方式创建 WebHost

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder =>{webBuilder.UseStartup<Startup>();});

CreateDefaultBuilder 方法将会调用 UseIIS 方法和 UseIISIntergration 方法,分别用于 IIS 进程内托管方式以及 IIS 进程外托管方式

无论使用哪一种部署方式,都应该先发布应用

发布 ASP.NET Core 应用程序有两种方式,分别是使用 Visual Studio 中的发布向导以及使用 .NET Core CLI 命令

首先通过发布向导发布到指定文件夹,接着配置 IIS,需要确保当前计算机已经安装了 IIS 以及 IIS 管理控制台,完成配置之后访问网站,将会打开 Swagger 文档页面,说明网站已经正常运行

目前,应用程序进能够通过 HTTP 方式访问,要使它在 IIS 中支持 HTTPS,还需要进行一些配置,包含证书设置、HTTPS 绑定和 HTTPS 重定向

当使用 HTTP 协议访问时,IIS 并不会进行 HTTPS 重定向,为了支持这一功能,需要安装“URL 重写”工具

10.2 部署到 Docker

Docker 是一个开源项目,目标是提供轻量级的操作系统虚拟化解决方案

由于容器使用沙箱机制,多个容器实例之间互不影响,因而可以将应用程序同时部署到多个容器中并同时运行

镜像与容器是 Docker 中两个非常重要的概念,简单来说,镜像是用于创建容器的模板,Docker 容器则是通过镜像创建的应用程序实例

Docker 支持多个平台,包含 Windows、Linux 和 macOS 系统,Windows 10 可以通过下载“Docker for Windows”使用

在 Windows 操作系统中安装并使用 Docker,应首先启用 Hyper-V 功能,Hyper-V 能够使 Linux 容器运行在 Windows 系统上,这是 Docker 安装与运行所必需的

对于 Windwos 系统,Docker 会安装 Linux 虚拟机,以便在 Windows 操作系统中能够运行并创建基于 Linux 的容器

Dokcer 提供了一系列用于操作镜像和容器的命令

操作 Docker 镜像的命令:

  • docker build 创建

  • docker images 列出镜像

  • docker pull 下载镜像

  • docker push 发布镜像

  • docker tag 指定标签

  • docker rmi 删除镜像

操作 Docker 容器的命令:

  • docker create 创建容器

  • docker start 启动容器

  • docker run 创建并启动

  • docker stop 停止

  • docker rm 删除

  • docker ps 列出正在运行的容器

  • docker logs 查看日志

  • docker exec 在运行的容器中执行命令或启动交互式会话

docker create 命令和 docker run 命令支持的参数

  • --name 指定容器名称

  • -p,--publish 将主机的端口映射到容器的端口

  • --rm 当容器停止运行后,使 Docker 自动删除该容器

  • -v,--volume 为容器中的指定目录提供数据卷

  • -e,-env 为容器提供环境变量

  • -i 以交互模式运行容器,通常与-t同时使用

Docker Compose 简介

当应用程序依赖多个服务时,如数据库和缓存等,要将其部署到容器中,也可以使用 Docker 命令以及 Docker 网络实现,但是会比较烦琐且极容易出错

为此,Docker 提供了 Docker Compose,也称为 Docker 容器编排,它是一个用来描述复杂的应用程序的工具,这些复杂应用通常需要创建多个容器,并使用 Docker 数据卷与 Docker 网络等;此外,它还可以编排并管理多个容器,能够简化部署复杂应用程序到容器的操作,且不易出错

相关文章

《ASP.NET Core 与 RESTful API 开发实战》-- (第9章)-- 读书笔记(下)

《ASP.NET Core 与 RESTful API 开发实战》-- (第9章)-- 读书笔记(上)

《ASP.NET Core 与 RESTful API 开发实战》-- (第8章)-- 读书笔记(尾)

《ASP.NET Core 与 RESTful API 开发实战》-- (第8章)-- 读书笔记(下)

《ASP.NET Core 与 RESTful API 开发实战》-- (第8章)-- 读书笔记(中)

《ASP.NET Core 与 RESTful API 开发实战》-- (第8章)-- 读书笔记(上)

《ASP.NET Core 与 RESTful API 开发实战》-- (第7章)-- 读书笔记(下)

《ASP.NET Core 与 RESTful API 开发实战》-- (第7章)-- 读书笔记(中)

《ASP.NET Core 与 RESTful API 开发实战》-- (第7章)-- 读书笔记(上)

《ASP.NET Core 与 RESTful API 开发实战》-- (第6章)-- 读书笔记(下)

《ASP.ENT Core 与 RESTful API 开发实战》-- (第6章)-- 读书笔记(上)

《ASP.ENT Core 与 RESTful API 开发实战》-- (第5章)-- 读书笔记(下)

《ASP.ENT Core 与 RESTful API 开发实战》-- (第5章)-- 读书笔记(中)

《ASP.ENT Core 与 RESTful API 开发实战》-- (第5章)-- 读书笔记(上)

《ASP.ENT Core 与 RESTful API 开发实战》-- (第4章)-- 读书笔记(下)

《ASP.ENT Core 与 RESTful API 开发实战》-- (第4章)-- 读书笔记(上)

《ASP.ENT Core 与 RESTful API 开发实战》(第3章)-- 读书笔记(下)

《ASP.ENT Core 与 RESTful API 开发实战》(第3章)-- 读书笔记(中)

《ASP.ENT Core 与 RESTful API 开发实战》(第3章)-- 读书笔记(上)

《ASP.ENT Core 与 RESTful API 开发实战》-- 读书笔记(第2章)

《ASP.ENT Core 与 RESTful API 开发实战》-- 读书笔记(第1章)

《ASP.NET Core 与 RESTful API 开发实战》-- (第10章)-- 读书笔记相关推荐

  1. asp编程工具_使用ASP.NET Core构建RESTful API的技术指南

    译者荐语:利用周末的时间,本人拜读了长沙.NET技术社区翻译的技术文章<微软RESTFul API指南>,打算按照步骤写一个完整的教程,后来无意中看到了这篇文章,与我要写的主题有不少相似之 ...

  2. 使用ASP.NET Core构建RESTful API的技术指南

    译者荐语:利用周末的时间,本人拜读了长沙.NET技术社区翻译的技术文章<微软RESTFul API指南>,打算按照步骤写一个完整的教程,后来无意中看到了这篇文章,与我要写的主题有不少相似之 ...

  3. 52abp框架asp.net core Angular全栈开发实战视频课程

    课程标题 52abp框架asp.net core & Angular全栈开发实战视频课程 课程简介 从零开始学 52ABP企业开发框架,企业项目是如何开发和技术选型,代码如何管理,团队协同开发 ...

  4. 菜单Menu(AS开发实战第四章学习笔记)

    4.5 菜单Menu Android的菜单主要分两种,一种是选项菜单OptionMenu,通过按菜单键或点击事件触发,另一种是上下文菜单ContextMenu,通过长按事件触发.页面的布局文件放在re ...

  5. [C++]DirectX 12 3D游戏开发实战—第9章 学习笔记02 2019.5.3

    仅个人学习用,请勿转载 词汇 漫反射反照率纹理图:diffuse albedo texture map 过滤器:fliter 纹理放大:magnification 常数插值:constant inte ...

  6. Hadoop实战第四章--读书笔记

    Hadoop三种运行方式: 单机模式.优点:安装配置简单,运行在本地文件系统,便于调试和查看运行效果:缺点:数据量大时较慢,不能模拟分布式模式: 伪分布式模式.优点:运行在本地HDFS文件系统上,能够 ...

  7. [Android]《Android艺术开发探索》第一章读书笔记

    1. 典型情况下生命周期分析 (1)一般情况下,当当前Activity从不可见重新变为可见状态时,onRestart方法就会被调用. (2)当用户打开新的Activity或者切换到桌面的时候,回调如下 ...

  8. 《Spring实战》第二章读书笔记

    装配Bean 定义表演者(Performer)接口,含有一个表演(Perform)方法: package com.springinaction.springidol;public interface ...

  9. ASP.NET Core WebApi构建API接口服务实战演练

    一.ASP.NET Core WebApi课程介绍 人生苦短,我用.NET Core!提到Api接口,一般会想到以前用到的WebService和WCF服务,这三个技术都是用来创建服务接口,只不过Web ...

最新文章

  1. symfony 2 app.php,php / symfony2从URL隐藏app.php
  2. 实时分析态势感知大数据日志
  3. linux-basic(11)认识和学习bash
  4. CF940D Alena And The Heater
  5. 深入Spring Boot:利用Arthas排查NoSuchMethodError
  6. Django自定义一个简单的中间件,并使用此中间件
  7. HDU 1862 EXCEL次序 (排序水问题)
  8. 20/23种设计模式---C++实现
  9. vc2008程序发布指南
  10. ffmpeg加马赛克
  11. 初等证明:使用无穷下降法证明丢番图方程x^4 - y^4 = z^2无非零整数解
  12. android 6g 有必要吗,Android手机6GB内存有必要吗?实测出真知
  13. 用AkShare库获取A股股票数据—获取实时A股数据
  14. EMOTET,URSNIF,DRIDEXBitPaymer之间的关联性分析
  15. 标准IP数据包是否保证数据部分的正确性?
  16. putty 显示鼠标
  17. [HAOI2012]外星人——数论欧拉函数
  18. WDA-FPM-4-用OVP做查询跳转到明细
  19. java swing 跳转窗口_java swing 怎么实现点击按钮或者某个组件,跳转到另一个页面或者窗体?...
  20. MTK camera flashlight bring up

热门文章

  1. SSH整合注解版(Spring+Struts2+Hibernate)
  2. [Linux环境]-centos7下安装jdk1.8.0_141流程.
  3. bzoj3122 [Sdoi2013]随机数生成器(bsgs+扩欧+数列)
  4. 在不安装mysql-connector-net的情况下使用FluentData框架
  5. 割点和桥算法——摘自《算法艺术与信息学竞赛》
  6. (转)C#网络编程(基本概念和操作) - Part.1
  7. 动态的管理ASP.NET DataGrid数据列【转载】
  8. 在Ubuntu 11.10中将窗口按钮移回右侧
  9. 《图解 HTTP》读书笔记(未完待续)
  10. 20172304 2017-2018-2 《程序设计与数据结构》第六周学习总结