第 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章)-- 读书笔记(上)