天天看點

Docker學習筆記之-部署.Net Core 3.1項目到Docker容器,并使用Nginx反向代理(CentOS7)(一)

上一節示範如何安裝Docker,連結:Docker學習筆記之-在CentOS中安裝Docker

本節示範 将.net core 3.1 部署到docker容器當中,并使用 Nginx反向代理,部署平台 CentOS 7.8

1,安裝 Nginx 支援 (centos7.8 預設不帶Nginx) 、(如果要使用Nginx容器反向代理,可以跳過第一步)

第一步:安裝 Nginx

centos系統不像 ubuntu系統,可以直接install安裝,需要先添加源:

sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm      
Docker學習筆記之-部署.Net Core 3.1項目到Docker容器,并使用Nginx反向代理(CentOS7)(一)

上圖表示添加成功,接下來執行安裝指令

sudo yum install -y nginx      
Docker學習筆記之-部署.Net Core 3.1項目到Docker容器,并使用Nginx反向代理(CentOS7)(一)

安裝完畢:

Docker學習筆記之-部署.Net Core 3.1項目到Docker容器,并使用Nginx反向代理(CentOS7)(一)

啟動 Nginx 服務 

sudo systemctl start nginx.service      

啟動後通過下邊腳本驗證是否安裝成功,這裡的IP位址就是你centos系統的ip位址,怎麼檢視ip位址可以檢視前邊章節

curl http://172.18.237.116/      

出現以下内容說明安裝成功。

Docker學習筆記之-部署.Net Core 3.1項目到Docker容器,并使用Nginx反向代理(CentOS7)(一)

附上一個參考文檔:https://www.cnblogs.com/tenghao510/p/11990353.html 

第二步:釋出項目

釋出之前:先到項目中設定5000端口

Docker學習筆記之-部署.Net Core 3.1項目到Docker容器,并使用Nginx反向代理(CentOS7)(一)

接下來開始正文,編譯你.net項目,并添加docker支援,項目右鍵,選擇添加docker 支援(這一部分操作必須)

Docker學習筆記之-部署.Net Core 3.1項目到Docker容器,并使用Nginx反向代理(CentOS7)(一)

然後選擇 linux,主要是為了釋出到 centos 上

Docker學習筆記之-部署.Net Core 3.1項目到Docker容器,并使用Nginx反向代理(CentOS7)(一)

 确定後,項目中會多了一個 Dockerfile 檔案 (選擇該檔案,右鍵-->屬性--> 設定為始終複制)

Docker學習筆記之-部署.Net Core 3.1項目到Docker容器,并使用Nginx反向代理(CentOS7)(一)

預設裡面内容是:

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["myAPI/myAPI.csproj", "myAPI/"]
RUN dotnet restore "myAPI/myAPI.csproj"
COPY . .
WORKDIR "/src/myAPI"
RUN dotnet build "myAPI.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "myAPI.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "myAPI.dll"]      

實際上,生産環境隻需要以下内容就可以了。

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
COPY . /app
EXPOSE 80
ENTRYPOINT ["dotnet", "myAPI.dll"]      

解釋:

mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim 基礎鏡像,也就是.net core 的運作時;

EXPOSE 80 是指這個容器對外暴露的端口(實際部署時用不到該端口);

WORKDIR /app  是容器的工作目錄;

COPY . /app  是指複制目前目錄(其中

.

即代表目前目錄)到容器中的/app目錄下;

ENTRYPOINT  指定容器的運作對象

右鍵項目-->釋出-->配置釋出内容

Docker學習筆記之-部署.Net Core 3.1項目到Docker容器,并使用Nginx反向代理(CentOS7)(一)

配置内容:部署模式選擇 “依賴架構”,運作時選擇 linux-x64,點選,儲存--釋出

Docker學習筆記之-部署.Net Core 3.1項目到Docker容器,并使用Nginx反向代理(CentOS7)(一)

釋出成功之後,通過軟體Xftp 将項目上傳到伺服器上

在centOS服務根目錄建立一個項目檔案夾,存放要上傳的項目,

通過Xftp很友善的就可以完成,右鍵--建立檔案夾:netcoredemo,将左邊檔案上傳即可

Docker學習筆記之-部署.Net Core 3.1項目到Docker容器,并使用Nginx反向代理(CentOS7)(一)

釋出後的項目不包含 Dockerfile,需要單獨上傳,将Dockerfile也上傳到項目netcoredemo檔案夾中

Docker學習筆記之-部署.Net Core 3.1項目到Docker容器,并使用Nginx反向代理(CentOS7)(一)

 通過指令 ls 驗證是否上傳成功,如下圖所示,項目已經上傳成功

Docker學習筆記之-部署.Net Core 3.1項目到Docker容器,并使用Nginx反向代理(CentOS7)(一)

現在項目上傳到伺服器了,接下來就是部署到Docker中!

都示範完篇幅有點太長了,是以後邊的放到下一節中示範!

Docker學習筆記之-部署.Net Core 3.1項目到Docker容器,并使用Nginx反向代理(CentOS7)(二)

作者:PeterZhang

出處:https://www.cnblogs.com/peterzhang123

本文版權歸作者和部落格園共有,歡迎轉載,但必須給出原文連結,并保留此段聲明,否則保留追究法律責任的權利。