《ASP.NET Core 與 RESTful API 開發(fā)實(shí)戰(zhàn)》-- (第10章)-- 讀書筆記

第 10 章 部署
10.1 部署到 IIS
ASP.NET Core 應(yīng)用程序支持部署到 IIS 中,之后它將作為應(yīng)用程序的反向代理服務(wù)器和負(fù)載均衡器,向應(yīng)用程序中轉(zhuǎn)傳入的 HTTP 請(qǐng)求
默認(rèn)情況下,ASP.NET Core 項(xiàng)目的 Program 類使用如下方式創(chuàng)建 WebHost
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup();
});
CreateDefaultBuilder 方法將會(huì)調(diào)用 UseIIS 方法和 UseIISIntergration 方法,分別用于 IIS 進(jìn)程內(nèi)托管方式以及 IIS 進(jìn)程外托管方式
無論使用哪一種部署方式,都應(yīng)該先發(fā)布應(yīng)用
發(fā)布 ASP.NET Core 應(yīng)用程序有兩種方式,分別是使用 Visual Studio 中的發(fā)布向?qū)б约笆褂?.NET Core CLI 命令
首先通過發(fā)布向?qū)Оl(fā)布到指定文件夾,接著配置 IIS,需要確保當(dāng)前計(jì)算機(jī)已經(jīng)安裝了 IIS 以及 IIS 管理控制臺(tái),完成配置之后訪問網(wǎng)站,將會(huì)打開 Swagger 文檔頁面,說明網(wǎng)站已經(jīng)正常運(yùn)行
目前,應(yīng)用程序進(jìn)能夠通過 HTTP 方式訪問,要使它在 IIS 中支持 HTTPS,還需要進(jìn)行一些配置,包含證書設(shè)置、HTTPS 綁定和 HTTPS 重定向
當(dāng)使用 HTTP 協(xié)議訪問時(shí),IIS 并不會(huì)進(jìn)行 HTTPS 重定向,為了支持這一功能,需要安裝“URL 重寫”工具
10.2 部署到 Docker
Docker 是一個(gè)開源項(xiàng)目,目標(biāo)是提供輕量級(jí)的操作系統(tǒng)虛擬化解決方案
由于容器使用沙箱機(jī)制,多個(gè)容器實(shí)例之間互不影響,因而可以將應(yīng)用程序同時(shí)部署到多個(gè)容器中并同時(shí)運(yùn)行
鏡像與容器是 Docker 中兩個(gè)非常重要的概念,簡單來說,鏡像是用于創(chuàng)建容器的模板,Docker 容器則是通過鏡像創(chuàng)建的應(yīng)用程序?qū)嵗?/p>
Docker 支持多個(gè)平臺(tái),包含 Windows、Linux 和 macOS 系統(tǒng),Windows 10 可以通過下載“Docker for Windows”使用
在 Windows 操作系統(tǒng)中安裝并使用 Docker,應(yīng)首先啟用 Hyper-V 功能,Hyper-V 能夠使 Linux 容器運(yùn)行在 Windows 系統(tǒng)上,這是 Docker 安裝與運(yùn)行所必需的
對(duì)于 Windwos 系統(tǒng),Docker 會(huì)安裝 Linux 虛擬機(jī),以便在 Windows 操作系統(tǒng)中能夠運(yùn)行并創(chuàng)建基于 Linux 的容器
Dokcer 提供了一系列用于操作鏡像和容器的命令
操作 Docker 鏡像的命令:
docker build 創(chuàng)建
docker images 列出鏡像
docker pull 下載鏡像
docker push 發(fā)布鏡像
docker tag 指定標(biāo)簽
docker rmi 刪除鏡像
操作 Docker 容器的命令:
docker create 創(chuàng)建容器
docker start 啟動(dòng)容器
docker run 創(chuàng)建并啟動(dòng)
docker stop 停止
docker rm 刪除
docker ps 列出正在運(yùn)行的容器
docker logs 查看日志
docker exec 在運(yùn)行的容器中執(zhí)行命令或啟動(dòng)交互式會(huì)話
docker create 命令和 docker run 命令支持的參數(shù)
--name 指定容器名稱
-p,--publish 將主機(jī)的端口映射到容器的端口
--rm 當(dāng)容器停止運(yùn)行后,使 Docker 自動(dòng)刪除該容器
-v,--volume 為容器中的指定目錄提供數(shù)據(jù)卷
-e,-env 為容器提供環(huán)境變量
-i 以交互模式運(yùn)行容器,通常與-t同時(shí)使用
Docker Compose 簡介
當(dāng)應(yīng)用程序依賴多個(gè)服務(wù)時(shí),如數(shù)據(jù)庫和緩存等,要將其部署到容器中,也可以使用 Docker 命令以及 Docker 網(wǎng)絡(luò)實(shí)現(xiàn),但是會(huì)比較煩瑣且極容易出錯(cuò)
為此,Docker 提供了 Docker Compose,也稱為 Docker 容器編排,它是一個(gè)用來描述復(fù)雜的應(yīng)用程序的工具,這些復(fù)雜應(yīng)用通常需要?jiǎng)?chuàng)建多個(gè)容器,并使用 Docker 數(shù)據(jù)卷與 Docker 網(wǎng)絡(luò)等;此外,它還可以編排并管理多個(gè)容器,能夠簡化部署復(fù)雜應(yīng)用程序到容器的操作,且不易出錯(cuò)
相關(guān)文章
《ASP.NET Core 與 RESTful API 開發(fā)實(shí)戰(zhàn)》-- (第9章)-- 讀書筆記(下)
《ASP.NET Core 與 RESTful API 開發(fā)實(shí)戰(zhàn)》-- (第9章)-- 讀書筆記(上)
《ASP.NET Core 與 RESTful API 開發(fā)實(shí)戰(zhàn)》-- (第8章)-- 讀書筆記(尾)
《ASP.NET Core 與 RESTful API 開發(fā)實(shí)戰(zhàn)》-- (第8章)-- 讀書筆記(下)
《ASP.NET Core 與 RESTful API 開發(fā)實(shí)戰(zhàn)》-- (第8章)-- 讀書筆記(中)
《ASP.NET Core 與 RESTful API 開發(fā)實(shí)戰(zhàn)》-- (第8章)-- 讀書筆記(上)
《ASP.NET Core 與 RESTful API 開發(fā)實(shí)戰(zhàn)》-- (第7章)-- 讀書筆記(下)
《ASP.NET Core 與 RESTful API 開發(fā)實(shí)戰(zhàn)》-- (第7章)-- 讀書筆記(中)
《ASP.NET Core 與 RESTful API 開發(fā)實(shí)戰(zhàn)》-- (第7章)-- 讀書筆記(上)
《ASP.NET Core 與 RESTful API 開發(fā)實(shí)戰(zhàn)》-- (第6章)-- 讀書筆記(下)
《ASP.ENT Core 與 RESTful API 開發(fā)實(shí)戰(zhàn)》-- (第6章)-- 讀書筆記(上)
《ASP.ENT Core 與 RESTful API 開發(fā)實(shí)戰(zhàn)》-- (第5章)-- 讀書筆記(下)
《ASP.ENT Core 與 RESTful API 開發(fā)實(shí)戰(zhàn)》-- (第5章)-- 讀書筆記(中)
《ASP.ENT Core 與 RESTful API 開發(fā)實(shí)戰(zhàn)》-- (第5章)-- 讀書筆記(上)
《ASP.ENT Core 與 RESTful API 開發(fā)實(shí)戰(zhàn)》-- (第4章)-- 讀書筆記(下)
《ASP.ENT Core 與 RESTful API 開發(fā)實(shí)戰(zhàn)》-- (第4章)-- 讀書筆記(上)
《ASP.ENT Core 與 RESTful API 開發(fā)實(shí)戰(zhàn)》(第3章)-- 讀書筆記(下)
《ASP.ENT Core 與 RESTful API 開發(fā)實(shí)戰(zhàn)》(第3章)-- 讀書筆記(中)
《ASP.ENT Core 與 RESTful API 開發(fā)實(shí)戰(zhàn)》(第3章)-- 讀書筆記(上)
《ASP.ENT Core 與 RESTful API 開發(fā)實(shí)戰(zhàn)》-- 讀書筆記(第2章)
《ASP.ENT Core 與 RESTful API 開發(fā)實(shí)戰(zhàn)》-- 讀書筆記(第1章)
